如果存在特定元素,则控制向量

时间:2016-03-21 00:20:07

标签: c++

我试图编写一个控制向量的方法,如果有特定元素的话。所以我有一个图形结构,如下所示:

struct graph {  
    std::vector <std::vector<int>> gr;
};  

然后我有一个在两个顶点之间添加边的方法。

void add_edge(graph& g, int from, int to) {

        if  ( from >= 0 && to >= 0 && from < g.gr.size() && to < g.gr.size()) {
            g.gr[from].push_back(to);
        }

}

此方法必须在两个顶点之间添加有向边,控制是否已存在有向边,如果是 - 则不执行任何操作。它只能用现有节点调用。 主要问题是我不知道如果有一个有针对性的边缘如何控制。我尝试使用std::find(g.gr[from].begin,g.gr[from].end, to) != g.gr[from].end())条件,但最终出现错误。

FIRST ERROR Severity    Code    Description Project File    Line    Suppression State Error C3867 'std::vector<int,std::allocator<_Ty>>::begin': non-standard syntax; use '&' to create a pointer to member DU2 c:\users\1\...\graph.hpp    81 
SECOND ERROR Severity   Code    Description Project File    Line    Suppression State Error C2672   'std::find': no matching overloaded function found  DU2 c:\users\1\..\graph.hpp 81

1 个答案:

答案 0 :(得分:2)

您忘记了()末尾的g.gr[from].beging.gr[from].end中的std::find