将数组插入向量

时间:2014-04-22 09:05:55

标签: c++

我需要用向量编写简单的代码,我有点挣扎。

我有缓冲区(char数组)从回调中的另一个程序数据中获取,我需要插入到vector的末尾 - 整个数组。

vector<u_char> vector; 

callback (new data inside the buffer)
 {
   copy buffer to the end of vector;      
 }

最后,向量假设包含来自缓冲区的连续数据。

是否有一种有效的方法可以在没有插入char的情况下使用&#34; for&#34;?

for(...)
  vector.push_back[i]=buffer[j]

谢谢!

3 个答案:

答案 0 :(得分:7)

假设你知道尺寸,你可以插入一个范围:

vector.insert(vector.end(), buffer, buffer + size);

对于这类事情,还有一种更通用的算法:

#include <iterator>
#include <algorithm>

std::copy(buffer, buffer + size, std::back_inserter(vector));

答案 1 :(得分:1)

如何按照所需的数量增加矢量大小,并进行memcpy?

答案 2 :(得分:0)

您可以使用std :: begin和std :: end(#include <iterator>)来获取数组的开始和结束迭代器:

vector.insert(vector.begin(), std::begin(buffer), std::end(buffer))