gpt4 book ai didi

c++ - 与 const std::string 的 vector 相关的编译失败

转载 作者:IT老高 更新时间:2023-10-28 22:26:45 28 4
gpt4 key购买 nike

请有人解释一下为什么使用 clang 3.5 无法编译以下代码。

报告的错误是“算法中没有可行的重载'='。”

std::vector<const std::string> m_messages;
std::vector<const std::string>::iterator iter;
...

if (iter != m_messages.end())
{
m_messages.erase(iter); // compilation error
}

如果我声明 m_messages如:std::vector<std::string> m_messages;然后就可以编译了。

还有,有什么区别:

std::vector<const std::string> m_messages;

std::vector<std::string> m_messages;

TIA。

最佳答案

要删除一个元素,必须重新定位右侧的元素(向左移动)。

由于您的字符串是 const,因此无法覆盖旧元素(通过 = 运算符),因此会出现错误。

关于c++ - 与 const std::string 的 vector 相关的编译失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29899282/

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