gpt4 book ai didi

c++ - Boost Graph Library - 将 vector 插入边缘属性

转载 作者:行者123 更新时间:2023-11-30 05:15:40 25 4
gpt4 key购买 nike

我想知道是否可以通过插入一个值来设置边的属性。示例如下所示。

struct Edge {

//boundary length
int length = 0;

//boundary coordinates
vector<cv::Point> boundary;

//pointer to heap
boost::heap::fibonacci_heap<rnn, boost::heap::compare<compare_nn>>::handle_type heap_pointer;

Edge(float length = 0) : length (length ) {}
};

//i'd like to push in point into vector<cv::Point> boundary
boost::put(&Edge::boundary, g, boost::edge(0, 1, g), cv::Point(2,2));

我可以获取 vector 属性,在我它放回Edge之前一个点,但它看起来非常低效.我希望有人能给我一个建议。

最佳答案

更简单:

auto& boundary = boost::get(&Edge::boundary, g, boost::edge(0, 1, g));
boundary.emplace_back(2,2);

关键是对 vector 进行引用而不是复制它。

当然你可以拼成push_back(cv::Point(2,2))如果你的标准库不支持 emplace_back还没有。

关于c++ - Boost Graph Library - 将 vector 插入边缘属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42970767/

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