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)
只是不要使用指针。
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代替。