- 813 名前:デフォルトの名無しさん mailto:sage [2008/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); }
|

|