![](/img/trans.png)
[英]Why can't I use my unordered map to print out a name for this vertex from boost graph library
[英]How can I use the Boost Graph Library to lay out verticies?
我正在嘗試使用Boost Graph Library布置頂點。 但是,我遇到了一些不確定的編譯問題。 我是否以不當方式使用BGL? 我的代碼是:
PositionVec position_vec(2);
PositionMap position(position_vec.begin(), get(vertex_index, g));
int iterations = 100;
double width = 100.0;
double height = 100.0;
minstd_rand gen;
rectangle_topology<> topology(gen, 0, 0, 100, 100);
fruchterman_reingold_force_directed_layout(g, position, topology); //Compile fails on this line
clang ++(我也嘗試過GCC)產生的診斷結果是:
In file included from test.cpp:2:
/Volumes/Data/mike/Downloads/boost_1_43_0/boost/graph/fruchterman_reingold.hpp:95:3: error: no member named 'dimensions' in
'boost::simple_point<double>'
BOOST_STATIC_ASSERT (Point::dimensions == 2);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from test.cpp:2:
In file included from /Volumes/Data/mike/Downloads/boost_1_43_0/boost/graph/fruchterman_reingold.hpp:13:
In file included from /Volumes/Data/mike/Downloads/boost_1_43_0/boost/graph/graph_traits.hpp:15:
In file included from /Volumes/Data/mike/Downloads/boost_1_43_0/boost/tuple/tuple.hpp:24:
/Volumes/Data/mike/Downloads/boost_1_43_0/boost/static_assert.hpp:118:49: note: instantiated from:
sizeof(::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( B ) >)>\
^
In file included from test.cpp:2:
/Volumes/Data/mike/Downloads/boost_1_43_0/boost/graph/fruchterman_reingold.hpp:95:3: note: instantiated from:
BOOST_STATIC_ASSERT (Point::dimensions == 2);
^ ~~~~~~~
/Volumes/Data/mike/Downloads/boost_1_43_0/boost/graph/fruchterman_reingold.hpp:95:31: note: instantiated from:
BOOST_STATIC_ASSERT (Point::dimensions == 2);
~~~~~~~^
/Volumes/Data/mike/Downloads/boost_1_43_0/boost/graph/fruchterman_reingold.hpp:417:19: note: in instantiation of template class
'boost::grid_force_pairs<boost::rectangle_topology<boost::random::linear_congruential<int, 48271, 0, 2147483647, 399268537> >,
boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::simple_point<double> *,
std::vector<boost::simple_point<double>, std::allocator<boost::simple_point<double> > > >,
boost::vec_adj_list_vertex_id_map<boost::property<boost::vertex_name_t, std::basic_string<char>, boost::no_property>, unsigned
long>, boost::simple_point<double>, boost::simple_point<double> &> >' requested here
make_grid_force_pairs(topology, position, g)),
^
/Volumes/Data/mike/Downloads/boost_1_43_0/boost/graph/fruchterman_reingold.hpp:431:3: note: in instantiation of function template
specialization
'boost::fruchterman_reingold_force_directed_layout<boost::rectangle_topology<boost::random::linear_congruential<int, 48271, 0,
2147483647, 399268537> >, boost::adjacency_list<boost::listS, boost::vecS, boost::undirectedS,
boost::property<boost::vertex_name_t, std::basic_string<char>, boost::no_property>, boost::no_property, boost::no_property,
boost::listS>, boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::simple_point<double> *,
std::vector<boost::simple_point<double>, std::allocator<boost::simple_point<double> > > >,
boost::vec_adj_list_vertex_id_map<boost::property<boost::vertex_name_t, std::basic_string<char>, boost::no_property>, unsigned
long>, boost::simple_point<double>, boost::simple_point<double> &>, boost::square_distance_attractive_force,
boost::attractive_force_t, boost::no_property>' requested here
fruchterman_reingold_force_directed_layout
^
test.cpp:48:3: note: in instantiation of function template specialization
'boost::fruchterman_reingold_force_directed_layout<boost::rectangle_topology<boost::random::linear_congruential<int, 48271, 0,
2147483647, 399268537> >, boost::adjacency_list<boost::listS, boost::vecS, boost::undirectedS,
boost::property<boost::vertex_name_t, std::basic_string<char>, boost::no_property>, boost::no_property, boost::no_property,
boost::listS>, boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::simple_point<double> *,
std::vector<boost::simple_point<double>, std::allocator<boost::simple_point<double> > > >,
boost::vec_adj_list_vertex_id_map<boost::property<boost::vertex_name_t, std::basic_string<char>, boost::no_property>, unsigned
long>, boost::simple_point<double>, boost::simple_point<double> &> >' requested here
fruchterman_reingold_force_directed_layout(g, position, topology);
^
1 error generated.
:p當我確實需要用它來做某事時,我通常都不會做BGL代碼的頭或尾。通常,我會為要使用的功能簽出隨附的單元測試/示例文件。 很多時候那里有一個可以輕易修改的例子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.