我正在开发一个应用程序来发送和接收数据包。向C++向量添加新字段
我正在使用std::vector
类(首先我开始在数组中创建数据包,如果您更好地建议,我会公开更改该方法)。
我找到了this智能功能将任何const char*
添加到vector
对象。但我想做一个像{.. , ..}
之间添加它们,就像我可以在C#中做的那样。这里的一个例子:
vector<char*> packet;
char dest[] = { 0x10, 0x10, 0x0, 0x61 };
AppendLiteral(packet, dest); //Ok
/*Or directly:*/ AppendLiteral(packet, { 10, 10, 0, 20 }); //But this does not work
它可能在c + +?我知道在C#中你可以做这样的事情。
编辑:
一种可能的解决方案是:
vector<uint8> telegram;
vector<uint8> src = { 0x10, 0x10, 0x0, 0x20 };
vector<uint8> dst = { 0x10, 0x10, 0x0, 0x60 };
telegram.insert(telegram.end(), dst.begin(), dst.end());
telegram.insert(telegram.end(), src.begin(), src.end());
随着一点点函数写少:
template <typename T>
void Append(vector<T> *data, vector<T> *data2)
{
data->insert(data->end(), data2->begin(), data2->end());
}
你的意思是'std :: vector'? – juanchopanza
是@juanchopanza – ars1614
你确定最后一行中的数字没有被解析,就好像它们是“int”一样吗? – BinarySpark