我可以返回一个向量来用C++11扩展现有的向量吗
Can I return a vector to extend an existing vector with C++11?
用函数返回的向量内容扩展向量的最佳方法是什么?
我可以做:
std::vector<int> base;
{
std::vector<int> tmp = getVec(); //RVO will make this efficient
base.reserve(base.size() + tmp.size());
base.insert(base.end(), std::make_move_iterator(tmp.begin()), std::make_move_iterator(tmp.end()));
}
但是,在不创建tmp的情况下可以做到这一点吗?我可以通过引用将base传递给getVec,但我觉得参数应该用于输入,返回值应该用于输出。理想情况下,我可以做到:
base.extend(getVec());
但我看不出如何用法向量函数来实现这一点。
将要附加到的向量作为参数发送。这被广泛使用和接受。
void func(vector<int>* master) {
// Generate values as you did in getVec() but now append to the original vector
// instead of to a temp.
while(generatingNumbers(i))
master->push_back(i);
}
相关文章:
- 写入向量<向量<bool>>
- 函数向量_指针有不同的原型,我可以构建一个吗
- std::向量与传递值的动态数组
- 将值指定给向量(2D)的向量中的某个位置
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 如何使用向量的template_back函数
- 尝试通过多个向量访问变量时,向量下标超出范围
- 基于范围的 for 循环:迭代使用一个元素扩展的向量
- 如何在macOS中的旧扩展clang和gcc编译器中初始化数组和向量
- 如何将参数包扩展为向量<any>
- AVX2 根据条件将连续元素扩展到稀疏向量?(如AVX512 VP扩展)
- 我如何允许向量传递到info(),capture(),warn()等,同时避免非法扩展std名称空间
- 将RCPP函数扩展到任何类型的输入向量
- 堆栈分配的向量如何在 C++ 中扩展
- Clang向量扩展与C++中的等式算子
- 我应该使用SIMD还是向量扩展或其他什么
- 当无限扩展deque而不是向量时崩溃
- 在unique_ptrs向量中搜索时出现非标准扩展警告
- 我可以返回一个向量来用C++11扩展现有的向量吗
- 扩展向量迭代器以访问所包含类/结构的数据成员