gpt4 book ai didi

c++ - 遍历字符串集时没有可行的转换

转载 作者:行者123 更新时间:2023-11-28 04:30:55 25 4
gpt4 key购买 nike

给定集合:

{“警报”、“警报”、“问题”

我想要输出:

alarm
alert
issue

我想向后或向前打印集合中的每个元素。以下是我尝试过的代码:

set<string> str_set = {"hi", "bye", "there"}; string cur_word;

for(long iter = str_set.begin(); iter!= set.end(); iter++) {
cout << iter << endl;
}

我收到错误:

No viable conversion from 'std::__1::set<std::__1::basic_string<char>,
std::__1::less<std::__1::basic_string<char> >,
std::__1::allocator<std::__1::basic_string<char> > >::iterator' (aka
'__tree_const_iterator<std::__1::basic_string<char>,
std::__1::__tree_node<std::__1::basic_string<char>, void *> *, long>') to
'long'

最佳答案

您的代码的问题在于 std::set<std::string>::begin() 返回的迭代器正在转换为 long时间。您应该定义 iter 的类型作为 std::set<std::string>::iteratorauto .


std::set<std::string> str_set = {"hi", "bye", "there"};
for(auto iter = str_set.begin(); iter != str_set.end(); iter++) {
std::cout << *iter << '\n';
}

auto相当于std::set<std::string>::iterator .


std::set<std::string> str_set = {"hi", "bye", "there"};
for(auto &value : str_set) {
std::cout << value << '\n';
}

auto相当于std::string& .

关于c++ - 遍历字符串集时没有可行的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52939060/

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