に変換最近、私が最近読んだ多くの投稿は、より長いイテレータ構文for(std::vector<Type*>::const_iterator it = vec.begin(); it != vec.end(); it++)
を使用した場合と同じです(詳細はfor(const auto &it : vec)
を参照)。しかし、私は彼らが同じではないと言うthis postに来た。const auto&iteratorを
現在、forループの要素を使用した後、その要素を消去しようとしていますが、const auto &it : nodes
をstd::vector<txml::XMLElement*>::iterator
に変換する方法があるのでしょうか?問題の
コード:私はかなり確信して、私はただのconstポインタとしてstd::vector<txml2::XMLElement*>
を書き換えることができますが、このコードは一瞬でデバッグ用ですので、したくない
std::vector<txml2::XMLElement *> nodes;
//...
for (const auto &it : nodes)
{
//...
nodes.erase(it);
}
。
ありがとう、それは大きな助けでした。最終的に 'set_difference'を使用して終わりましたが、それは正しいパスで私を得ました。 – ZeroPhase