【C++】STL(Standard Template Library)相談室 8at TECH
【C++】STL(Standard Template Library)相談室 8 - 暇つぶし2ch813:デフォルトの名無しさん
08/02/20 11:58:27
>>810

よくわからんが、こういうことか?

void foo(vector<int>& v, int index) {
vector::iterator iter = v.begin() + index; // この iter は有効か判断したい.
v.insert(iter, 5);
}

ならば、こう書けば良い

void foo1(vector<int>& v, int index) {
if (v.size() < index) v.resize(index); // iterが必ず有効になるように、事前にvectorを拡大する.
vector::iterator iter = v.begin() + index;
v.insert(iter, 5);
}

void foo2(vector<int>& v, int index) {
if (v.size() < index) throw std::invalid_argument("index が大き杉"); // 範囲外なら例外を投げる.
vector::iterator iter = v.begin() + index;
v.insert(iter, 5);
}


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch