たとえば、map1は1〜10の値をいくつかのアドレスで指定しています(末尾が始まります)。 私は1の上にしようとしたが、期待値only..my 10に10助けてください 1には値1を取得していますマップの逆を別のマップにコピーする方法はありますか?
map<long , int* > v;
map<long , int* > rv;
int i,a[10];
for(i=0; i<10; i++)
{
a[i] = i+1;
v.insert(pair<long, int *>(i+1,&a[i]));
}
itr = v.begin();
while(itr != v.end())
{
cout << itr->first << " "<<itr->second;
cout << endl;
itr++;
}
rv.insert(v.rbegin(),v.rend());
cout << "copied array: "<<endl;
itr = rv.begin();
while(itr != rv.end())
{
cout << itr->first << " "<<itr->second;
cout << endl;
itr++;
}
(最後に始まる)MAP2内の対応するアドレスの値10を1にしたいです私を見つける....
ペア tempPair;ロングx = 0; int * p = NULL;マップ :: reverse_iterator r = v.rbegin(); while(r!= v.rend()){x = r-> first; p =(int *)r-> second; cout << x << "" << p; cout << endl; tempPair(x、p); rv.insert(tempPair); r ++; }このようにしてみましたが、エラーが発生しました。 "エラー:呼び出しが一致しません '(std :: pair )(long int&、int *&)'コンパイル終了" –
Raj
マップはその鍵。 – PlasmaHH
@Raj:あなたのコメントのエラーは、あなたが実際に初期値を持つ前に 'tempPair'をCスタイルで早すぎると定義しているためです。初期値のときに ' tempPair(x、p)'ペアを書くだけで定義してください。 –
MSalters