操纵用new创建的向量

Col*_*mbo 1 c++ heap vector push-back

有人能帮忙吗...

vector<unsigned int> *vVec = new vector<unsigned int>;
        vVec .reserve(frankReservedSpace);

        start = std::clock();
        for(int f=0; f<sizeOfvec; f++)
        {   //Populate the newly created vector on the heap
            vVec .push_back(pArray[f]);
        }
Run Code Online (Sandbox Code Playgroud)

我得到了:错误C2228:'.reserve'的左边必须有class/struct/union

我正在使用new运算符创建一个向量,以便它比创建它的函数更长.因此,这给了我一个指向堆上的向量而不是实际向量对象本身的指针.因此它不会让我执行push_backs的任何.reserve().我看不到它的方法,有人可以帮忙吗?

hea*_*vyd 9

vVec是一个指向矢量的指针.因此,您应该使用间接( - >)运算符而不是点(.)

vector<unsigned int> *vVec = new vector<unsigned int>;
vVec->reserve(frankReservedSpace);

start = std::clock();
for(int f=0; f<sizeOfvec; f++)
{  //Populate the newly created vector on the heap
   vVec->push_back(pArray[f]);
}
Run Code Online (Sandbox Code Playgroud)