gpt4 book ai didi

c++ - 'for(auto &str : vec)' 内部 for 循环的目的是什么?

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

我是 C++ 的新手,正在尝试学习 vector 的概念。我在网上看到这段代码。我的问题是,'for(auto &str : vec)' 中的内部 for 循环的目的是什么?为什么作者要对第一个引用 (&str) 创建第二个引用 (&c)?

int main() {
vector<string> vec;
for (string word; cin >> word; vec.push_back(word)) {
}
for (auto &str : vec) {
for (auto &c : str) {
c = toupper(c);
}
}
for (int i = 0; i != vec.size(); ++i) {
if (i != 0 && i % 8 == 0) cout << endl;
cout << vec[i] << " ";
}
cout << endl;
return 0;
}

最佳答案

用于将字符串str中的每一个字符都转为大写。

换句话说,这:

for(auto &c : str) {
c = toupper(c);
}

相当于:

for(size_t i = 0; i < str.size(); ++i) {
str[i] = toupper(str[i]);
}

关于c++ - 'for(auto &str : vec)' 内部 for 循环的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35308629/

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