Tho*_*hor 4 c++ for-loop vector
我是C++的新手,正在尝试学习矢量的概念.我在网上看到了这段代码.我的问题是,'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;
}
Run Code Online (Sandbox Code Playgroud)
它用于将字符串的每个字符转换str为大写.
换句话说,这个:
for(auto &c : str) {
c = toupper(c);
}
Run Code Online (Sandbox Code Playgroud)
相当于:
for(size_t i = 0; i < str.size(); ++i) {
str[i] = toupper(str[i]);
}
Run Code Online (Sandbox Code Playgroud)