Boost vector insert_element逐个出错

Boost vector insert_element one by one error

本文关键字:出错 element vector insert Boost      更新时间:2023-10-16

我有以下一段代码;我得到转换错误,请告诉我我在哪里出错?基本上,我是在对该值进行一些处理后,在vector中逐个添加元素。

疑问:我想在向量的末尾添加新元素,所以traininglevertex .end()在参数中是否正确?

 typedef boost::numeric::ublas::vector<double>  Rd;
    Rd boost::numeric::ublas::vector<double>;
    //some code for Mn
    triangleVertex.insert_element(triangleVertex.end(), Mn);
    //some code for Ln
    triangleVertex.insert_element(triangleVertex.end(), Ln);
error C2664: 'boost_1_53_0::numeric::ublas::vector<T>::insert_element' 

:不能将参数1从'boost_1_53_0::numeric::ublas::vector::iterator'到'unsigned '__int64 '

ublas::vector<T>::insert_element期望size_type作为第一个参数,而不是迭代器。

使用:

triangleVertex.insert_element(triangleVertex.size(), Mn);

也可以看一下文档

如pmr所示,insert_element需要一个指向向量的索引。在我看来,你想要的是在向量的末尾添加一些元素。这在矢量中是不有效的,您应该尝试事先知道矢量的大小,并使用insert_element在正确的位置添加元素。