Sha*_*Hsu 32 c++ iteration for-loop c++11
我的代码如下:
std::cin >> str;
for ( char c : str )
if ( c == 'b' ) vector.push_back(i) //while i is the index of c in str
Run Code Online (Sandbox Code Playgroud)
这可行吗?或者我将不得不与老派进行循环?
Dan*_*rey 32
也许它有足够的变量i?
unsigned i = 0;
for ( char c : str ) {
if ( c == 'b' ) vector.push_back(i);
++i;
}
Run Code Online (Sandbox Code Playgroud)
这样您就不必更改基于范围的循环.
Enk*_*ken 24
在 C++ 20 中,我使用这样的初始化程序:
for(unsigned short i = 0; string item : nilai){
cout << i << "." << "address " << &item << " -> " << item << endl;
i++;
}
Run Code Online (Sandbox Code Playgroud)
所以,你的情况会是这样的:
for (unsigned short i = 0; char c : str ) {
if ( c == 'b' ) vector.push_back(i);
++i;
}
Run Code Online (Sandbox Code Playgroud)
我不知道“向量”在你的情况下意味着什么,以及 Push_back() 是什么。不要忘记添加-std=c++20(我只是使用g++进行编译,所以我对其他编译器不太了解)。如果需要,您也可以将“i”值从 1 开始。我觉得已经够优雅了
Ben*_*ley 22
假设str是一个std::string具有连续存储的对象或其他对象:
std::cin >> str;
for (char& c : str)
if (c == 'b') v.push_back(&c - &str[0]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28250 次 |
| 最近记录: |