【发布时间】:2020-11-14 21:51:06
【问题描述】:
目前我正在像这样在另一个向量中插入一个向量:
#include <vector>
int main(const int argc, const char** argv)
{
std::vector<int> old_elements{1, 2, 3};
std::vector<int> elements{4, 5, 6};
elements.insert(elements.end(), old_elements.begin(), old_elements.end());
}
我想做的是这样的
std::vector<int> get_old_elements()
{
return std::vector<int>{1, 2, 3};
}
int main(const int argc, const char** argv)
{
std::vector<int> elements{4, 5, 6};
elements.insert(elements.end(), get_old_elements());
}
所以我不能在不先存储临时结果的情况下调用 begin 和 end。有没有办法做到这一点?在ranges 的一次 cppcon 会谈中,我听说它可能是开始和结束的结束。所以我想可能有一些方法可以通过范围库来实现这样的目标。
【问题讨论】:
-
elements = get_old_elements()怎么样? -
更新了问题,让我更清楚我打算做什么
-
@yasht:为什么要避免存储本地对象?
标签: c++ c++11 stl stdvector c++20