OpenCV点的std :: vector,没有push_back方法

塞德里克

免责声明:引发该错误是因为touchesY是从cv :: ParallelLoopBody继承的嵌套类的属性,该嵌套类是const类,在本文中未显示。解决方法在答案中有详细说明。

我有这个cv :: Points3i的std :: vector,但是每当我尝试push_back一个新值时都会收到一个错误,即没有“ push_back方法”。

在头文件中声明:

std::vector<cv::Point3_<int>> touchesY;

调用源文件:

touchesY.push_back(cv::Point3_<int>(i/mask.step[0],0,i-x));

我已经包含了向量库,并且这样做没有错误:

std::vector<int> vec;
vec.push_back(1);

有人可以指出我做错了什么吗?谢谢!

错误是:没有匹配的成员函数可调用'push_back'。


正如@FirstStep所建议的那样,我将代码分解为:

cv::Point3_<int> temp(i/mask.step[0],0,i-x);
touchesY.push_back(temp);

现在,我在第一行出现错误,说:没有匹配的构造函数用于初始化'std::vector<cv::Point3_<int>>'


完整的错误消息:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/vector:687:36:候选函数不可行:“此”参数的类型为“ const std :: vector>” ,但方法未标记为const /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/vector:685:36:候选函数不可行:'此'参数的类型为' const std :: vector>',但方法未标记为const

塞德里克

我终于找到了错误。正如@NathanOlivier指出的,这是一个基于上下文的错误。

基本上,我正在定义一个继承自cv :: ParallelLoopBody的嵌套类,该类作为cv :: Point的std :: vector类型的属性,名为touchesY。由于我继承自cv :: ParallelLoopBody,因此将其定义为const,这使我无法对其调用push_back。

我通过将属性移到基类上解决了这个问题,然后在创建嵌套类时将其传递给引用,然后使用该引用对它调用push_back。

非常感谢大家!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

std vector push_back':2个重载没有针对“ this”指针错误的合法转换

来自分类Dev

std :: vector :: push_back的成本是成功还是无效?

来自分类Dev

MSVC中std :: vector :: push_back的实现

来自分类Dev

std :: vector函数push_back中的奇怪段错误

来自分类Dev

push_back期间std :: vector分段错误

来自分类Dev

std :: vector中push_back函数的奇怪语法

来自分类Dev

关于`std :: vector :: push_back`的小数的选择

来自分类Dev

线程安全性std :: vector push_back并保留

来自分类Dev

MSVC中std :: vector :: push_back的实现

来自分类Dev

std::vector<>::push_back 导致 Arduino 链接错误

来自分类Dev

想要简化我的 std::vector push_back 用法

来自分类Dev

为什么要在std :: vector :: push_back(T object)方法中构造对象时调用析构函数?

来自分类Dev

std :: vector <std :: vector <int >> push_back导致堆缓冲区溢出

来自分类Dev

调用std :: vector :: push_back()会更改vector中的先前元素吗?

来自分类Dev

调用std :: vector :: push_back()会更改vector中的先前元素吗?

来自分类Dev

错误:没有匹配的函数调用vector :: push_back

来自分类Dev

在std :: vector push_back()和std :: map运算符中使用&&作为参数[]

来自分类Dev

使用push_back时,std :: unique_ptr是否已移入std :: vector?

来自分类Dev

std :: vector <std :: unique_ptr <>> :: push_back()的正确语法是什么?

来自分类Dev

当push_back新元素添加到std :: vector时,C ++参考更改

来自分类Dev

为什么std :: vector :: push_back需要赋值运算符

来自分类Dev

C ++ std :: vector可以同时处理来自多线程的push_back吗?

来自分类Dev

AddressSanitizer将std :: vector <T> :: push_back标识为释放后使用堆错误的原因

来自分类Dev

将指针数组推入std :: vector中,避免使用push_back复制对象

来自分类Dev

std :: vector的push_back()导致奇怪的编译时错误消息

来自分类Dev

C ++ std :: vector可以同时处理来自多线程的push_back吗?

来自分类Dev

为什么使用虚拟析构函数进行std :: vector :: push_back segfaults?

来自分类Dev

OpenMP 并行区域中的 std::vector push_back 会导致错误共享吗?

来自分类常见问题

具有已构建对象的std :: move与emplace_back()的C ++ 11 push_back()效率

Related 相关文章

  1. 1

    std vector push_back':2个重载没有针对“ this”指针错误的合法转换

  2. 2

    std :: vector :: push_back的成本是成功还是无效?

  3. 3

    MSVC中std :: vector :: push_back的实现

  4. 4

    std :: vector函数push_back中的奇怪段错误

  5. 5

    push_back期间std :: vector分段错误

  6. 6

    std :: vector中push_back函数的奇怪语法

  7. 7

    关于`std :: vector :: push_back`的小数的选择

  8. 8

    线程安全性std :: vector push_back并保留

  9. 9

    MSVC中std :: vector :: push_back的实现

  10. 10

    std::vector<>::push_back 导致 Arduino 链接错误

  11. 11

    想要简化我的 std::vector push_back 用法

  12. 12

    为什么要在std :: vector :: push_back(T object)方法中构造对象时调用析构函数?

  13. 13

    std :: vector <std :: vector <int >> push_back导致堆缓冲区溢出

  14. 14

    调用std :: vector :: push_back()会更改vector中的先前元素吗?

  15. 15

    调用std :: vector :: push_back()会更改vector中的先前元素吗?

  16. 16

    错误:没有匹配的函数调用vector :: push_back

  17. 17

    在std :: vector push_back()和std :: map运算符中使用&&作为参数[]

  18. 18

    使用push_back时,std :: unique_ptr是否已移入std :: vector?

  19. 19

    std :: vector <std :: unique_ptr <>> :: push_back()的正确语法是什么?

  20. 20

    当push_back新元素添加到std :: vector时,C ++参考更改

  21. 21

    为什么std :: vector :: push_back需要赋值运算符

  22. 22

    C ++ std :: vector可以同时处理来自多线程的push_back吗?

  23. 23

    AddressSanitizer将std :: vector <T> :: push_back标识为释放后使用堆错误的原因

  24. 24

    将指针数组推入std :: vector中,避免使用push_back复制对象

  25. 25

    std :: vector的push_back()导致奇怪的编译时错误消息

  26. 26

    C ++ std :: vector可以同时处理来自多线程的push_back吗?

  27. 27

    为什么使用虚拟析构函数进行std :: vector :: push_back segfaults?

  28. 28

    OpenMP 并行区域中的 std::vector push_back 会导致错误共享吗?

  29. 29

    具有已构建对象的std :: move与emplace_back()的C ++ 11 push_back()效率

热门标签

归档