是否有一种简单的方法可以将矢量char复制到2d矢量字符串中的位置,同时将2d矢量保留为成员变量?
例如:
我想将缓冲区复制到data [0] [0]
class foo
{
private:
vector<vector<string>> data;
};
在某处
vector<char> buffer = {copyMe}
答案 0 :(得分:0)
#include <algorithm> // std::copy
#include <iterator> // std::back_inserter
std::copy(buffer.begin(), buffer.end(), std::back_inserter(data[0][0]));
这会将buffer
的内容附加到data[0][0]
的字符串。
答案 1 :(得分:0)
基本上我们可以使用memcpy
将矢量复制到另一个中,如果这些矢量类型相同
std::vector<char> vc;
//...
std::vector<char> vs;
vs.resize( vc.size());
memcpy( &vs[0], &vc[0], vs.size());
或
std::copy( vc.begin(), vc.end(), vs.begin());
但是,由于不同类型char
和std::string
投射不起作用。我们可以逐个元素地循环复制,这样:
std::vector<char> vc;
//...
std::vector<std::string> vs;
for ( size_t i = 0; i < vc.size(); i++) {
vs.push_back( std::string(&vc[i], &vc[i+1]));
}