我有wriitten程序在地圖上進行不同操作。地圖擦除錯誤
以下是我的程序示例代碼。
運行此代碼時我收到一個錯誤,如地圖擦除超出範圍異常。
請幫我解決這個問題。
int main()
{
using namespace std;
map <int, int> m1;
map <int, int> :: iterator m1_Iter;
map <int, int> :: const_iterator m1_cIter;
typedef pair <int, int> Int_Pair;
m1.insert (Int_Pair (1, 10));
m1.insert (Int_Pair (2, 20));
m1.insert (Int_Pair (3, 30));
m1_cIter = m1.end();
m1_cIter--;
cout << "The value of the last element of m1 is:\n"
<< m1_cIter -> second << endl;
m1_Iter = m1.end();
m1_Iter--;
m1.erase (m1_Iter);
m1_cIter = m1.begin();
m1_cIter--;
m1.erase (m1_cIter);
m1_cIter = m1.end();
m1_cIter--;
cout << "The value of the last element of m1 is now:\n"
<< m1_cIter -> second << endl;
getchar();
}
您應該嘗試在您的代碼中添加一些調試'cout'來幫助追查您的問題。我們通常不會爲您調試您的代碼。找出問題,然後提出問題。 – 2012-03-15 12:01:42
我在這部分得到運行時錯誤 m1_cIter = m1.begin(); m1_cIter--; m1.erase(m1_cIter); – 2012-03-15 12:07:10
http://stackoverflow.com/questions/4885318/calling-erase-with-iterator-vs-const-iterator – 2012-03-15 12:34:09