我想用另一个 vector
填充 std::vector
。例如:
std::vector<int> src = {1, 2, 3};
std::vector<int> dst(9);
我想填充 dst 使其变为:1, 2, 3, 1, 2, 3, 1, 2, 3
有没有有效的方法来做到这一点?
我现在有两种方法:
第一个是两个循环:
auto size = dst.size() / src.size();
for (int i = 0; i < size; i++) {
for (int val : src) {
dst.emplace_back(val);
}
}
或者在一个循环中使用std::copy
。
也许存在更有效的方法?
最佳答案
您的问题有误。与std::vector<int> dst(9);
和显示的代码你会得到一个无限循环。
std::vector<int> dst;
for (int i = 0; i < 3; ++i)
dst.insert(dst.end(), src.begin(), src.end());
关于c++ - 如何在 C++ 中用另一个较小的 vector 填充 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75600257/