私はC++を学んでいます。 私はコピーを避けるために私達に参照を学んだ。 私はその要素を上書きするために参照としてベクトルのイテレータを取得しようとしました。C++でiteratorを参照として取得できないのはなぜですか?
// simplified function
std::vector<int>::iterator& GetIterator(std::vector<int>& vec) {
return vec.begin(); // compiler said that here is an error.
}
コンパイラがエラーメッセージを表示し、const参照を使用するように指示します。 私はconstを使いたくないです。 非const参照を取得できないのはなぜですか? イテレータのコピーを避けるには? ありがとうございます。
'vec.begin()'は値で返します。その参照が参照するものについて考えてみましょう。 – juanchopanza
正確なエラーメッセージは何ですか? –
イテレータをコピーしないのはなぜですか? – melpomene