vector<vector<float>> det拷贝到vector<vector<float>> *results
时间: 2023-08-10 22:06:08 浏览: 70
好的,您可以使用以下代码将det拷贝到results中:
```
vector<vector<float>>* results = new vector<vector<float>>();
*results = det;
```
这将创建一个指向vector<vector<float>>类型的指针results,并将det的值复制到results指向的内存空间中。现在您可以使用results来访问和操作det的值了。
相关问题
vector<vector<float>> det深拷贝到vector<vector<float>> *results
好的,您可以使用以下代码将det深拷贝到results中:
```
vector<vector<float>>* results = new vector<vector<float>>();
for (const auto& row : det) {
results->push_back(vector<float>(row.begin(), row.end()));
}
```
这将创建一个指向vector<vector<float>>类型的指针results,并使用for循环将det的每一行向量深拷贝到results中。现在您可以使用results来访问和操作det的值了,并且对results的修改不会影响到原始的det。
error: invalid initialization of reference of type ‘std::vector<YoloDetSt>&’ from expression of type ‘__gnu_cxx::__alloc_traits<std::allocator<YoloDetSt> >::value_type {aka YoloDetSt}’
这个错误信息提示你在初始化一个类型为std::vector<YoloDetSt>的引用时出现了错误。具体来说,你可能是这样定义了一个函数:
```cpp
void foo(std::vector<YoloDetSt>& vec) {
// ...
}
```
然后在调用这个函数时,传递了一个YoloDetSt类型的变量作为参数:
```cpp
YoloDetSt det;
foo(det);
```
这样是错误的,因为YoloDetSt类型的变量不能直接转换为std::vector<YoloDetSt>类型的引用。如果你想将YoloDetSt类型的变量添加到vec中,应该这样写:
```cpp
YoloDetSt det;
std::vector<YoloDetSt> vec;
vec.push_back(det);
foo(vec);
```
注意,在这里我们首先创建了一个空的std::vector<YoloDetSt>类型的变量vec,然后使用push_back函数将det添加到vec中,最后将vec作为参数传递给foo函数。这样就可以避免上述错误。
阅读全文