【发布时间】:2013-11-21 05:07:56
【问题描述】:
我正在尝试将指向向量的指针存储在向量中。 (我希望这不会太令人难以置信)。基本上,我有一个向量,我想在其中存储多个矩阵,因此是 3 维。我访问元素的方式似乎有问题。我并不特别理解这个错误,因为第三维是一个指向整数向量的指针。我认为这不会改变您访问整数的方式。
using namespace std;
vector< vector< vector<int>* >* > matrixHolder;
int main() {
vector< vector<int>* >* a;
a->push_back(new vector<int>(10, 0));
matrixHolder.push_back(a);
matrixHolder[0][0][0] = 5; //Line 34
return 0;
}
main.cpp:34: 错误:从‘int’到‘std::vector >*’的无效转换
【问题讨论】:
-
我需要使用指针,因为向量需要存储在堆中。我正在从调用堆栈中收集向量,这意味着,我正在从调用堆栈上的函数中收集向量。因此,这些函数中存储的数据会在函数执行完毕时丢失。我需要在堆中捕获该数据。
-
@brettgag 为什么不能只移动数据?
-
尝试将maxtrixholder的引用传递给函数
-
vector<T>已经将其数据存储在堆上。为什么向量本身需要在堆上?