我需要用向量编写简单的代码,我有点挣扎。
我有缓冲区(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]
谢谢!
答案 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))