'left' は、std::set の std::vector であり、左 (設定されている) の各要素に対して、'left' を反復処理することにより、別のセットにセット ユニオン操作を実行しようとしています。
次のコードが機能しないのはなぜですか。私は2つのセットのセットユニオンをやろうとしています。
std::vector<std::set<int> > left(num_nodes);
//Both leftv and left are not empty ....there is some code here which fills them.
std::set<int> leftv, dummy;
for(std::set<int>::iterator u = leftv.begin(); u != leftv.end() ;u++){
dummy.insert(v); //v is some integer
std::set_union (left[*u].begin(), left[*u].end(), dummy.begin(), dummy.end(), left[*u].begin());
dummy.clear();
}
エラー /usr/include/c++/4.3/bits/stl_algo.h:5078: エラー: 読み取り専用の場所 '__result.std::_Rb_tree_const_iterator<_Tp>::operator* with _Tp = int' の割り当て</p>