我正在開發一個應用程序來發送和接收數據包。向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