如何在每次迭代中创建新向量?

sks*_*sks 1 c++ pointers reference vector

当我运行下面的代码时,trainingVector我得到:

{(10,0),(10,0),(10,0)...}
Run Code Online (Sandbox Code Playgroud)

代替:

{(0,0),(1,0),(2,0)...}
Run Code Online (Sandbox Code Playgroud)

我如何使其正确工作?

vector< vector< double > * > trainingVector; 
for(int i=0;i<10;i++){     
    vector<double> ok (2,0);
    ok[0]=i;
    trainingVector.push_back(&ok)
}
Run Code Online (Sandbox Code Playgroud)

Cat*_*lus 5

只是不要使用指针。

std::vector<std::vector<double>> trainingVector;
for (int i = 0; i < 10; ++i) {
    std::vector<double> ok(2, 0);
    ok[0] = i;
    trainingVector.push_back(ok);
}
Run Code Online (Sandbox Code Playgroud)

还可以考虑使用Boost.MultiArray代替。