c++ - 使用 for_each 时出错

标签 c++ graph foreach

我的代码中有以下两个函数:

bool num()
{
    return 0;
}

void setDFS()
{
    int i = 0;
    project3::Graph<string, string> g1;

    std::for_each(g1.Vertice1.begin(), g1.Vertice1.end(),num);

}

该函数所做的是针对 vector Vertice1 中的每个顶点,现在必须将其编号设置为 0。一旦我开始图形遍历,稍后我会将 num 递增到遍历的计数。

编译时,我得到“ error C2197: 'bool (__cdecl *)(void)' : 调用参数过多”错误。

template <class VertexType, class EdgeType> class Vertex{
protected:
    VertexType vertice;
    EdgeType edge;

public:

};

std::vector<project3::Vertex<VertexType, EdgeType>*> Vertice1;

最佳答案

for_each算法收到 unary function它应该具有以下签名:

void function(T&);

其中 T 是 g1.Vertice1 vector 的元素类型:

template <class VertexType, class EdgeType>
void num(project3::Vertex<VertexType, EdgeType>* v) {
  *v = 0; // <- Maybe v->set(0,0,0)
}

关于c++ - 使用 for_each 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5612210/

相关文章:

python - 使用 python setup.py 编译和安装 C++ 程序

java - Android 中的 JGraphT 实现

python - 在图中实现(修改后的)DFS

c# - 如何通过 foreach 循环获取 FileInfo?

c++ - 如何绘制跟踪对象时的运动?

c++ - 如何解决错误消息 USB_DEVICE_FEATURE is disabled 的问题?

c++ - typedef 模板声明的替代方法

java - 用于在有向图中查找从节点到根的路径的高性能图算法

foreach - 在 MyBatis 3 中为 HashMap 参数嵌套 foreach

javascript - Jquery 为每个 HTML 字符串