我是一個相對有經驗的程序員,回到一些C++審查的類。我們有一個任務來編寫幾個相對簡單的C++程序。得到一個我不習慣的奇怪的錯誤,但我確定這是這個社區的小孩玩法。生鏽/初學者C++編譯器錯誤
int pull_next_element (int r, std::vector<int>& sequence) {
int x = sequence[0];
sequence.erase(sequence.begin()); //orig: sequence.erase(0);
return x;
}
錯誤我得到:
Error C2664: 'std::_Vector_iterator<_Myvec> std::vector<_Ty>::erase(std::_Vector_const_iterator<_Myvec>)' : cannot convert parameter 1 from 'int' to 'std::_Vector_const_iterator<_Myvec>'
編輯:用迭代器而不是數字索引代替,否則固定整個代碼這個問題。感謝大家。
它不是完全清楚你的問題是什麼在這裏... – 2012-07-22 12:24:58
請您發佈的來源,行是行58 – 2012-07-22 12:28:19
僅供參考,http://en.wikipedia.org/wiki/Permutation指示#Numbering_permutations – avakar 2012-07-22 12:30:08