Pointers 指针的STL向量将不会编译 我认为我有C++ 98… 我想创建指向现有对象的指针,然后将这些指针存储在向量中。这是我的代码,编译器会吠叫: vector<long double> *p1; p1=&vOPCT; vector

Pointers 指针的STL向量将不会编译 我认为我有C++ 98… 我想创建指向现有对象的指针,然后将这些指针存储在向量中。这是我的代码,编译器会吠叫: vector<long double> *p1; p1=&vOPCT; vector,pointers,vector,stl,Pointers,Vector,Stl,指针的STL向量将不会编译 我认为我有C++ 98… 我想创建指向现有对象的指针,然后将这些指针存储在向量中。这是我的代码,编译器会吠叫: vector<long double> *p1; p1=&vOPCT; vector<long double> *p2; p2=&vOPCGas; vector<long double *> MyVec; MyVec.push_back(p1); <- error M

指针的STL向量将不会编译 我认为我有C++ 98… 我想创建指向现有对象的指针,然后将这些指针存储在向量中。这是我的代码,编译器会吠叫:

  vector<long double> *p1;
  p1=&vOPCT;
  vector<long double> *p2;
  p2=&vOPCGas;

  vector<long double *> MyVec;
  MyVec.push_back(p1);   <- error
  MyVec.push_back(p2);   <- error
向量*p1;
p1=&vOPCT;
向量*p2;
p2=&vOPCGas;
载体MyVec;
MyVec.推回(p1)<代码>向量MyVec;

MyVec.推回(p1)
p1
p2
属于
vector*
类型,而不是
long double*
,后者是
MyVec
的有效负载类型。我的指针p1指向一个现有对象(vOPCT),它是一个长双精度向量。我可以让那部分工作。我还有很多其他的对象要设置指针。最终的游戏是能够通过指针(以及对象)进行迭代,从而能够调整向量对象的大小。这是我关于如何做的想法。显然,指针向量不会像我尝试的那样工作。那么,我的代码是试图设置指向长双精度的指针向量,还是指向长双精度向量的指针?您的代码是试图设置指向长双精度的指针向量(前者)。如果要设置指向长双精度向量(后者)的指针向量,那么
MyVec
应该声明为
vector
好的,现在我看到了!谢谢你的帮助!
vector<long double *> MyVec;
MyVec.push_back(p1);   <- error
vector<long double *> MyVec;
long double *p1 = nullptr;
MyVec.push_back(p1);