相关疑难解决方法(0)

从同一个向量push_back元素是否安全?

vector<int> v;
v.push_back(1);
v.push_back(v[0]);
Run Code Online (Sandbox Code Playgroud)

如果第二个push_back导致重新分配,则向量中对第一个整数的引用将不再有效.那么这不安全吗?

vector<int> v;
v.push_back(1);
v.reserve(v.size() + 1);
v.push_back(v[0]);
Run Code Online (Sandbox Code Playgroud)

这样可以安全吗?

c++ reference vector push-back language-lawyer

125
推荐指数
4
解决办法
6025
查看次数

将矢量附加到自身的好方法

我想复制矢量的内容,并希望它们被附加在原始矢量的末尾,即 v[i]=v[i+n] for i=0,2,...,n-1

我正在寻找一种很好的方法,而不是循环.我看到std::vector::insert但迭代版本禁止迭代器*this(即行为未定义).

我也尝试std::copy如下(但它导致分段错误):

copy( xx.begin(), xx.end(), xx.end());

c++ stl stdvector c++11

21
推荐指数
1
解决办法
3218
查看次数

为什么`copy_n`,`fill_n`和`generate_n`?

为什么_n版本的copy,fill并且generate已经在C++ 11中提供了,为什么只有这些算法呢?

algorithm standards stl stl-algorithm c++11

7
推荐指数
2
解决办法
541
查看次数