error: conversion from 'QVector<SP104>*' to non-scalar type 'QVector<SP104>' requested QVector<SP104> myvalue =t_cache.take(key)
时间: 2024-02-25 11:55:01 浏览: 24
这个错误的原因是你在将一个指向 `QVector<SP104>` 的指针转换为 `QVector<SP104>` 类型时出现了错误。这是因为 `QVector<SP104>` 是一个非标量类型,不能直接进行转换。
要解决这个错误,你需要使用解引用操作符 `*` 来访问指针指向的对象,然后将其复制到一个新的 `QVector<SP104>` 对象中,像这样:
```
QVector<SP104>* ptr = ...; // 指向 QVector<SP104> 的指针
QVector<SP104> myvalue = *ptr; // 复制指针指向的对象到一个新的 QVector<SP104> 对象中
```
这样就可以避免编译器的类型转换错误了。
相关问题
/home/wuyan/test/parse_threads.h:771: error: conversion from 'QVector<DP104>*' to non-scalar type 'QVector<DP104>' requested QVector<T> firstValue =t_cache.take(key); ^~~~~~~~~~
这是一个编译错误,错误信息显示在文件 `/home/wuyan/test/parse_threads.h` 的第 771 行,错误类型是类型转换错误。具体地,程序试图将类型为 `QVector<DP104>*` 的指针转换为类型为 `QVector<DP104>` 的对象,但是这种类型转换是不合法的。
可能的原因是程序在某个地方将 `QVector<DP104>` 对象插入了一个名为 `t_cache` 的容器,并且使用了指针的方式进行了插入。在取出该对象时,程序使用了 `take` 方法,并试图将其转换为对象类型,但是由于插入时使用了指针,所以导致了类型转换错误。
解决这个问题的方法是,检查代码中涉及到 `t_cache` 的部分,确保在插入对象时使用的是对象本身而非指针。
error: conversion from ‘std::vector<cv::Mat>’ to non-scalar type ‘cv::Mat’ requested
这个错误提示表明你尝试将一个 std::vector<cv::Mat> 类型的变量转换成 cv::Mat 类型,但是这种转换是不被允许的。
通常来说,这种错误是因为你在使用 OpenCV 库中的某个函数时,函数的返回值是 std::vector<cv::Mat> 类型,而你在调用该函数时尝试将返回值转换成 cv::Mat 类型。
解决这个问题的方法是,要么修改你的代码,使其能够正确地处理 std::vector<cv::Mat> 类型的变量;要么查看 OpenCV 文档,了解该函数的正确用法和返回值类型,以便正确地处理返回值。