gpt4 book ai didi

c++ - 从网络消息创建列表 C++

转载 作者:行者123 更新时间:2023-11-27 23:57:17 26 4
gpt4 key购买 nike

快速提问(我希望...)

我目前有一些旧代码正在尝试重写。旧代码使用手动链表。我正在尝试将其转换为 C++ 中的 std::list。目前,该列表是从它收到的 5 个字大的网络消息中填充的。所以在我的头文件中我声明如下:

std::list<int*> msg;

然后我在我的 cpp 文件中处理消息的地方有以下代码:

msg.push_back(recvBuf);

我有几个问题...

  1. 首先我做对了吗?列表是否会分配足够的空间来存储我的 recvBuf 中的所有 5 个单词?

  2. 当我收到新消息时,推回 recvBuf 会导致它被覆盖吗?我读过 push_back 创建内存的拷贝,但我想在这里仔细检查以确保我了解发生了什么。

  3. 总的来说,我是 C++ 列表的新手。我在这里尝试使用它们,因为通过阅读我相信这是最好的实现。如果这是真的,有人可以向我解释一下吗?如果不是,最好的实现是什么?

谢谢!

最佳答案

我强烈建议为您的消息创建一个结构:

struct Message
{
int payload[MAXIMUM_PAYLOAD_SIZE];
};

然后使用 Message 列表:

std::list<Message>  my_messages;

您也可以创建 Messagevector

这使您免于动态内存分配和对象所有权以及与指针关联的智能指针的麻烦。

这也符合您对“消息列表”的描述。

另一个优点是您可以轻松地将 Message 传递给其他函数,而不必担心数组语法。

关于c++ - 从网络消息创建列表 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41654671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com