理解c ++中的简写循环

时间:2013-05-31 21:04:29

标签: c++ for-loop shorthand

我是C ++的新手。我试图从我的书中找出这个样本简短的循环,它很长很丑,并且想知道这是否可以用更干净的方式重新编写。忽略那里的函数,比如before()和其他函数,它们是我正在处理的链表程序的一部分。我只是不明白我的书如何以更“传统”的方式重新编写循环。提前谢谢!

fooExample(string str){

    string s = toLower(str);

    for(books->setEnd();!books->atStart() && (toLower(books->getInfo().getAuthor()).search(s)==string::npos);books->before());

}

3 个答案:

答案 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;
}

作者接受了循环的主体,这只是一个条件中断,并将其添加到循环条件中。