私は C++ が初めてで、使用したいvector <unsigned int*> vec;
私はこのコードを試します:
vector <unsigned int*> vec;
unsigned int* tmpV= new unsigned int[4];
for(unsigned int i=0; i<4;i++){
tmpV[i]=i;
}
vec.push_back(tmpV);
unsigned int* tmpV2=vec.at(0);
cout<<"A) tmpV2[1]: "<<tmpV2[1] <<endl;
cout<<"vec.size(): "<<vec.size()<<endl;
for(unsigned int i=0; i<4;i++){
tmpV[i]=i+4;
}
vec.push_back(tmpV);
tmpV2=vec.at(0);
cout<<"vec.size(): "<<vec.size()<<endl;
cout<<"B) tmpV2[1]: "<<tmpV2[1]<<endl;
彼女の問題は、A) と B) に同じ値を出力したかったのですが、A) tmpV2[1]: 1 B) tmpV2[1]: 5 を出力することです。
このポインターのベクトルでさまざまな要素を処理できるようにしたいと考えています。なぜこれが起こっているのかは大まかに理解できますが、解決策を見つけることができませんでした。
使用したくないことに注意してください:vector < vector <unsigned int> >