我有迭代器我不想改变,但我想为该迭代器-1的值分配另一个迭代器,所以
it2 = --it1;
是不可能的.
问题:
it2 = it1-1;
不起作用.
错误:'更大 - 1'中的'operator-'不匹配c ++/4.1.1/bits/stl_bvector.h:182:注意:候选者是:ptrdiff_t std :: operator-(const std :: _ Bit_iterator_base&,const std: :_Bit_iterator_base&)
我能做到的
it2 = --it1; it1++;
但那太可怕了.
在C++ 11中,使用std::prev
标题<iterator>
:
it2 = std::prev(it1);
在此之前,你不得不自己制作副本并将副本推进-1:
it2 = it1; std::advance(it2, -1);
要么:
it2 = it1; it2--;