error: cannot convert ‘std::deque<cv::Mat>*’ to ‘int*’ in initialization int* ptr_share = &depth_queue;
时间: 2024-05-05 15:20:59 浏览: 137
这个错误是因为你试图将一个指向 `std::deque<cv::Mat>` 类型的指针转换为指向 `int` 类型的指针。这是不允许的,因为这两种类型是完全不同的。
要解决这个问题,你需要确定你想要的指针类型,并相应地进行修改。如果你需要一个指向 `std::deque<cv::Mat>` 类型的指针,那么你应该这样做:
```cpp
std::deque<cv::Mat>* ptr_share = ...
```
如果你需要一个指向 `int` 类型的指针,那么你应该这样做:
```cpp
int* ptr_share = ...
```
在两种情况下,你都需要确保指针类型与你要指向的数据类型匹配。
相关问题
std::unique_ptr<ThreadSafeDeque<std::pair<time_t, std::string> > > p_deque_message_怎么优化
这个问题可以回答。std::unique_ptr<ThreadSafeDeque<std::pair<time_t, std::string> > > p_deque_message_可以通过以下方式进行优化:
1. 使用普通指针代替unique_ptr,可以避免unique_ptr的内存管理开销。
2. 使用更高效的数据结构,例如std::vector或std::list,可以提高访问和插入元素的效率。
3. 考虑使用多线程技术,例如锁或无锁队列,以提高并发性能。
4. 考虑使用内存池技术,以减少内存分配和释放的开销。
优化这段代码std::unique_ptr<ThreadSafeDeque<std::pair<time_t, std::string> > > p_deque_message_
这段代码可以进行优化,具体优化方式需要根据具体情况进行分析。可以考虑使用智能指针来管理内存,避免内存泄漏的问题。同时,可以使用线程安全的双端队列来存储时间和字符串的键值对,以保证数据的安全性和可靠性。另外,可以考虑使用更高效的算法和数据结构来提高代码的性能和效率。
阅读全文