gpt4 book ai didi

c++ - 如何将基于迭代器的 for 循环重写为基于范围的循环 (C++11)

转载 作者:行者123 更新时间:2023-11-30 04:24:27 27 4
gpt4 key购买 nike

我想重写这个 for 循环(有效)

for (vector<shared_ptr<Node<int>>>::iterator it = n.root.children.begin();
it != n.root.children.end();
++it)
{cout << (*it)->value<<flush;}

进入基于范围的 for 循环。我试过的是

for (shared_ptr<Node<int>> child:(n.root).children){
cout<<(child->value)<<" "<<flush;
}

但它给了我一个核心转储。根是节点类型

template <typename T>
class Node{
public:
T value;
vector<shared_ptr<Node>> children;
};

main.cpp 中的这些行工作正常。

cout<<(n.root).value<<flush;
cout<<n.root.children.front()->value<<flush;

我使用 g++ 4.7.2。

最佳答案

给你。试试这个。

for (auto v : n.root.children ) {
cout << v->value << flush;
}

关于c++ - 如何将基于迭代器的 for 循环重写为基于范围的循环 (C++11),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12784091/

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