Je développe une application pour envoyer et recevoir des paquets.Ajouter un nouveau champ à un vecteur C++
Je travaille avec la classe std::vector
(d'abord j'ai commencé à faire les paquets dans les tableaux et je suis ouvert pour changer la méthode si vous en suggérez un meilleur).
J'ai trouvé this fonction intelligente pour ajouter un const char*
à un objet vector
. Mais je voudrais en faire un autre pour les ajouter entre {.. , ..}
comme je peux le faire en C#. Voici un exemple:
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
Est-il possible en C++? Je sais qu'en C# tu peux faire quelque chose comme ça.
Edit:
Une solution possible est:
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());
Avec une petite fonction pour écrire moins:
template <typename T>
void Append(vector<T> *data, vector<T> *data2)
{
data->insert(data->end(), data2->begin(), data2->end());
}
Voulez-vous dire 'std :: vector'? – juanchopanza
Oui @juanchopanza – ars1614
Êtes-vous sûr que les nombres de la dernière ligne ne sont pas analysés comme s'ils étaient 'int's? – BinarySpark