如何修复此边缘迭代器分配错误
How can I fix this edge iterator assignment error?
我想遍历图形并删除边,计算连接组件的数量,然后将删除的边再次添加回图形。
我被困在应该将边缘迭代器分配给图形的第一个和最后一个边缘
的地方edge_iter ei,ei_end,next;
ei = edges(g).first;
它似乎甚至像这样不起作用:
tie(ei,ei_end) = edges(g);
我收到以下错误:
没有可行的重载"="
这是什么意思?
这是我目前的程序:
using namespace boost;
using namespace std;
typedef adjacency_list <listS, vecS, undirectedS> Graph;
typedef graph_traits < Graph >::edge_descriptor Edge;
typedef std::pair<int,int> E;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef property_map<Graph, vertex_index_t>::type IndexMap;
typedef std::pair<int,int> E;
typedef graph_traits<Graph>::vertex_iterator vertex_iter;
typedef graph_traits<Graph>::out_edge_iterator edge_iter;
typedef property_map<Graph, vertex_index_t>::type VertexIndexMap;
int main(int,char*[])
{
int num_nodes,num_edges;
cin >> num_nodes >> num_edges;
Graph g(num_nodes);
for(int i = 0;i < num_edges; i++) // i/p edges into graph g
{
int e1,e2;
cin >> e1 >> e2;
Edge e;
bool success;
tie(e,success) = add_edge(e1-1, e2-1, g);
}
//graph entry completed
edge_iter ei,ei_end,next;
ei = edges(g).first;
你得到了带有edges(g)
的图形边缘。但是,edge_iter
被定义为 out_edge_iterator
.
这些是不一样的(我认为对于所有具有out_edge集合的图形模型)。
所以,要么,
typedef graph_traits<Graph>::edge_iterator edge_iter;
或
graph_traits<Graph>::vertex_descriptor v;
ei = out_edges(v, g).first;
取决于你想要实现的目标,在功能上
相关文章:
- vector.resize()中的分配错误
- 多个文件的内存分配错误"在抛出 'std :: bad_alloc' what (): std :: bad_alloc 的实例后终止调用" [C++]
- 0xC0000005:访问冲突写入位置0xCDCDCDCD动态分配错误
- 如何处理以下代码中的内存分配错误
- 动态内存分配错误
- C++向量上的分配错误
- libtorrent file_storage无效:分配错误
- 数组大小分配错误
- 只读位置'__result.std::_Rb_tree_const_iterator<_Tp>::operator*<long long int>()'分配错误
- C++ 内存分配错误?
- 具有特征成员变量分类和分配错误的C 类
- 为什么这种递归子集和算法会导致指针分配错误
- CSTRING分配错误
- 运行时间内存分配错误
- 以下C++代码给出了一些内存分配错误
- 尝试在c++中创建USRP对象时分配错误
- 多阵列动态内存分配错误
- C++:矢量分配错误
- 通过结构指针访问结构变量分配错误数据
- 声明向量时出现神秘的 malloc 内存分配错误