gpt4 book ai didi

c++ - 在winsock中将 vector 重用为数组的更有效方法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:01:36 25 4
gpt4 key购买 nike

我目前使用 vector 作为 C 风格的数组,通过 Winsock 发送和接收数据。

我有一个 std::vector,我将它用作我的“字节数组”。

问题是,我使用了两个 vector ,一个用于每次发送,一个用于每个接收,但我所做的似乎效率很低。

例子:

std::string EndBody("\r\n.\r\n");
std::fill(m_SendBuffer.begin(),m_SendBuffer.end(),0);
std::copy(EndBody.begin(),EndBody.end(),m_SendBuffer.begin());
SendData();

SendData 只是调用发送适当的次数并确保一切正常。

无论如何。除非我在每次使用前将 vector 归零,否则我会遇到重叠的错误。有没有更有效的方法让我做我正在做的事情?因为在每次调用时将整个缓冲区归零似乎效率极低。

谢谢。

最佳答案

你可以使用 m_SendBuffer.clear()

否则 end() 方法将不知道缓冲区的实际大小。

clear() 不是一个非常昂贵的调用方法。除非你正在处理一些 486 或其他东西,否则它不应该影响你的表现

关于c++ - 在winsock中将 vector 重用为数组的更有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/621512/

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