1

我对 C++ 很陌生。我试图从我的书中找出这个循环的示例简写,它非常长而且丑陋,我想知道这是否可以用更简洁的方式重新编写。忽略其中的函数,例如 before() 和其他函数,它们是我正在处理的链表程序的一部分。我只是从我的书中不明白如何以更“传统”的方式重新编写循环。提前致谢!

fooExample(string str){

    string s = toLower(str);

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

}
4

3 回答 3

3

C++ 中 for 循环的形式如下所示:

for(initialisation; condition; incrementation)
{
    //code
}

所以你可以做类似的事情

for(unsigned int i = 0; i < 10; ++i)
{
    std::cout << "i = " << i << std::endl;
}

您的代码中的原理是相同的;有一个初始化,一个条件,而不是真正的“增量”,而是循环的每次迭代都会发生一些事情(我猜它是上​​一本书)。

于 2013-05-31T21:08:35.703 回答
2

假设我们有一个 int 向量

vector<int> myvector;

我们可以用

for(auto iter : myvector){
    dosomething...
}
于 2014-02-24T20:52:57.227 回答
0

将循环改组为更典型的状态会产生:

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

作者取了循环体,也就是一个条件break,添加到循环条件中。

于 2013-05-31T22:04:02.237 回答