我是C ++的新手。我试图从我的书中找出这个样本简短的循环,它很长很丑,并且想知道这是否可以用更干净的方式重新编写。忽略那里的函数,比如before()和其他函数,它们是我正在处理的链表程序的一部分。我只是不明白我的书如何以更“传统”的方式重新编写循环。提前谢谢!
fooExample(string str){
string s = toLower(str);
for(books->setEnd();!books->atStart() && (toLower(books->getInfo().getAuthor()).search(s)==string::npos);books->before());
}
答案 0 :(得分:3)
C ++中for循环的形式如下所示:
for(initialisation; condition; incrementation)
{
//code
}
所以你可以做类似
的事情for(unsigned int i = 0; i < 10; ++i)
{
std::cout << "i = " << i << std::endl;
}
代码中的原则是一样的;有一个初始化,一个条件,而不是真正的“增量”,但是在循环的每次迭代中都会发生一些事情(我想它会转到上一本书)。
答案 1 :(得分:1)
说我们有一个int
的向量vector<int> myvector;
我们可以使用
for(auto iter : myvector){
dosomething...
}
答案 2 :(得分:0)
将循环变为更典型的状态会产生:
for(books->setEnd(); !books->atStart(); books->before())
{
if (toLower(books->getInfo().getAuthor()).search(s) == string::npos)
break;
}
作者接受了循环的主体,这只是一个条件中断,并将其添加到循环条件中。