gpt4 book ai didi

c++ - 没有计数器的for循环的可读性

转载 作者:太空宇宙 更新时间:2023-11-04 13:21:12 26 4
gpt4 key购买 nike

我最近为一个简单的链表写了一个实现,在我的代码中有几个地方看起来像

Node* current_node = head;
while (current_node != nullptr) {
if (current_node->data == query) {
// perform some action
break;
}
current_node = current_node->next;
}

我最近才想到我可以将其重新实现为

for (Node* current_node = head; current_node != nullptr; current_node = current_node->next) {
if (current_node->data == query) {
// perform some action
break;
}
}

我知道两者在语法上都是正确的,任何性能差异都可以忽略不计,但我想知道检查中的相等条件是否通常在 for 循环中实现?以前我只在 for 循环中使用不等式(例如:>、< 等)。哪个版本更传统/更易读?

最佳答案

通过 for 循环遍历链表并不是一个坏习惯,但您可以将其改进为:

std::list<type> list;
auto it = std::find(begin(list), end(list), query);
if (it != end(list))
// perform some action

关于c++ - 没有计数器的for循环的可读性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35188726/

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