gpt4 book ai didi

c++ - for循环中 bool 值不变

转载 作者:太空宇宙 更新时间:2023-11-04 15:17:42 24 4
gpt4 key购买 nike

我有一个 for 循环,用于在 vector 中搜索对象“Book”。如果 refBook 在 vector 中,它应该返回 true。如果不是,则为假。

int has = 0;

for (int i = 0; i < mBooks.size()-1; i++) {
if (mBooks.at(i) == refBook) {
has = 1;
cout << "Has book " << has << endl;
};
};

return has;

如果 Book 在 vector 中,它会正确地执行循环并打印 cout 语句。但是,它仍然返回 0。如果 has = 1; 相反,它将返回 1。如果 Book 在 vector 中,它永远不会改变它的值。

为什么会这样?

最佳答案

我只想说这正是std::find存在于:

bool has = (std::find(mBooks.begin(), mBooks.end(), refBook) != mBooks.end());

在编写循环时很容易出错(例如停止一次迭代很短)- 这就是为什么有时最好在一开始就尽量避免编写它们。

关于c++ - for循环中 bool 值不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28184454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com