C++ std::back_inserter(c) 得到插入迭代器:对它赋值等于 c.push_back(...)。适合算法输出长度事先未知的情况。
原型
template<class Container>
back_insert_iterator<Container> back_inserter(Container& c);参数
c:支持push_back的容器,如vector、string。
返回值
插入迭代器。
示例
#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>
int main() {
std::vector<int> src{1, 2, 3};
std::vector<int> dst;
std::copy(src.begin(), src.end(), std::back_inserter(dst));
for (int x : dst) {
std::cout << x << " ";
}
std::cout << "\n";
return 0;
}输出:
1 2 3
注意事项
若写成 copy(..., dst.begin()) 而 dst 为空,会越界。
下一页介绍distance。