use*_*958 2 c++ for-loop reference c++11
for当我弄清楚它是如何工作的时候,我正在阅读关于"范围"的陈述.
下面是一个将字符串转换为大写的程序.
string s("Hello World!!!");
//convert s to uppercase
for( auto &c :s ) // for every char in s
c= topper(c); // c is a reference,so the assignment changes the
// char in s
cout<< s << endl;
Run Code Online (Sandbox Code Playgroud)
对字符串的引用(即,c)是如何将元素更改为upppercase的?
我已经搜索了迭代如何在这里工作,但我找不到答案.
这段代码
for (auto& c : s)
{
c = toupper(c);
}
Run Code Online (Sandbox Code Playgroud)
粗略地翻译成这个
for (auto it = std::begin(s); it != std::end(s); ++it)
{
auto& c = *it;
c = toupper(c);
}
Run Code Online (Sandbox Code Playgroud)
这是一个基本的迭代器循环,涵盖在任何初学C++书籍中.
cppreference有一个更详细和准确的解释.
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |