C++标准库总结
算法:
accumulate 在 #include <numeric> 中,
accumulate 作用是对一对表示范围的迭代器中的元素进行相加。
如:
accumulate(v.begin(), v.end(), 0);表示将v中的元素以0为初始值进行相加。第三个参数表示‘+’的类型。
注意:accumulate(vs.begin(), vs.end(), ""); 错误!因为""为const char * 类型没有‘+’号 的重载
应该写成accumulate(vs.begin(), vs.end(), string(""));
fill_n 作用填充指定个数的固定值到容器中, 如:
fill_n(v.begin(), v.size(), 2);表示将v.size()个2填入到容器v中
注意不能在空容器中使用fill_n 算法。
back_insert()在头文件#include<iterator>中
back_insert()返回一个容器的插入迭代器
vector<int> v; //空容器
fill_n(back_insert(v), 10, 2); // 向容器中添加十个2
更新 2018-06-08
tuple 是类似pair的模板, 他们的区别是pair恰好是两个成员而tuple可
以存储任意个类型的成员。
- 初始化
tuple<int, int, int> threeInt; //三个成员默认初始化为零
tuple<int, int, int> threeInt{1,2,3} // 初始化为1,2,3
auto item = make_tuple("hello, world!", 2, 3.0);
make_tuple 和 make_pair 使用类似
- 获取指定成员
auto value = get<0>(item); // 获取第一个成员
value = get<1>(item); // 获取第二个成员