Bir const C ++ haritasındaki öğeye [] erişim işlecini kullanmayı denedim, ancak bu yöntem başarısız oldu. Ben de aynı şeyi yapmak için "at ()" kullanmayı denedim. Bu sefer işe yaradı. Ancak, const C ++ haritasındaki öğeye erişmek için "at ()" kullanımı hakkında herhangi bir başvuru bulamadım. "At ()" C ++ haritasına yeni eklenen bir işlev mi? Bununla ilgili daha fazla bilgiyi nerede bulabilirim? Çok teşekkür ederim!
Bir örnek aşağıdaki olabilir:
#include <iostream>
#include <map>
using namespace std;
int main()
{
map<int, char> A;
A[1] = 'b';
A[3] = 'c';
const map<int, char> B = A;
cout << B.at(3) << endl; // it works
cout << B[3] << endl; // it does not work
}
"B [3]" kullanmak için, derleme sırasında aşağıdaki hataları döndürdü:
t01.cpp: 14: hata: 'sabit std :: map, std :: ayırıcı>>' '_Tp & std :: map <_Key, _Tp, _Compare, _Alloc> :: operator [] ( const _Key &) [ile _Key = int, _Tp = char, _Compare = std :: less, _Alloc = std :: allocator>] 'niteleyicileri atar
Kullanılan derleyici g ++ 4.2.1'dir.