gpt4 book ai didi

c++ - 两次相同的for循环 : one compiles, 另一个没有

转载 作者:行者123 更新时间:2023-11-30 01:05:21 26 4
gpt4 key购买 nike

我有这段代码可以将几个字符串变成小写(请参阅 this SO post)。

void some_free_standing_function(std::string solver, std::map<std::string, option_t> opts) {

for (auto & c : solver) c = tolower(c);
for (auto p : opts)
for (auto & c : p.first)
c = tolower(c);
}

第一个基于范围的 for 似乎可以编译,最后一个没有:Clang 给我 error: cannot assign to variable 'c' with const-qualified type 'const char & '.

为什么第一个通过但第二个不通过,因为它们完全相同?

最佳答案

请注意 value_type std::map std::pair<const Key, T> , 这意味着 p.first你会得到一个 const std::string , 然后是 c 的类型将是 const char& , 不可修改。

第一个代码片段没有这样的问题; solver是一个非常量 std::string .

关于c++ - 两次相同的for循环 : one compiles, 另一个没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48538704/

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