C++ 标准库 - <iterator>

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。