Stl相关笔记
STL(Standard Template Library)标准模板库,是惠普实验室开发的一系列软件的统称。
分为三类:算法、容器、迭代器。
### 1.部分算法用法 #### 1.1 fill() 用来填充数组或支持迭代的容器。 #### 1.2 generate() 用来填充数组或支持迭代的容器,使用一个函数返回的值来填充,函数不保留对数组或容器内部值的访问。 #### 1.2 transform() 可以将函数应用到序列的元素上,并将这个函数返回的值保存到另一个序列中,它返回的迭代器指向输出序列所保存的最后一个元素的下一个位置。
#include "stdafx.h"
#include <algorithm>
#include <iostream>
#include <vector>
int main()
{
using namespace std;
cout << "list is :" << endl;
vector<int> tList(10);
fill(tList.begin(), tList.end(), 8);
for (auto it = tList.begin(); it != tList.end(); it++)
cout << *it << endl;
cout << "\nlist2 is :" << endl;
int num[10] = { 0 };
fill(num, num + 10, 5);
for (int i = 0; i<10; i++)
cout << num[i] << endl;
cout << "\nlist3 is :" << endl;
int i = 0;
generate(tList.begin(), tList.end(), [&i]() {
i++;
return i+2;
});
for (auto it = tList.begin(); it != tList.end(); it++)
cout << *it << endl;
cout << "\nlist4 is :" << endl;
std::vector<double> deg_C{ 21.0, 30.5, 0.0, 3.2, 100.0 };
std::vector<double> deg_F(deg_C.size());
transform(begin(deg_C), end(deg_C), begin(deg_F), [](double temp) { return 32.0 + 9.0*temp / 5.0; });
for (auto it = deg_F.begin(); it != deg_F.end(); it++)
cout << *it << endl;
getchar();
return 0;
}
参考: