Ben bir segment hataya olsun bu satırda myvector.begin() + 1
kullanarak kodukullanma std :: artırılır iterasyon ile bulmak
std::vector<char> myvector = {'u', 'd', 'l', 'r', 'u'};
std::vector<char>::iterator it;
std::cout << "vector size = " << myvector.size() << std::endl;
std::cout << "myvector.begin() = " << *(myvector.begin()+1) << std::endl;
it = find (myvector.begin() + 1, myvector.end(), *myvector.begin());
if (it != myvector.end())
{
myvector.erase(myvector.begin());
myvector.erase(it);
std::cout << "Found and deleted " << '\n';
std::cout << "vector size = " << myvector.size() << std::endl;
}
else
std::cout << "Element not found in myvector\n";
aşağıdakilere sahip Sağlar ki ve neden hiçbir fikrim yok.
it = find (myvector.begin() + 1, myvector.end(), *myvector.begin());
Normalde yineleyiciyi aritmetik ile artırabilmem gerekir. std::advance
veya std::next
gibi başka çözümler denedim, ancak hiç bir başarı elde etmedim.
Herhangi bir öneriniz var mı?
@And evet, ne ulaşmak istediğiniz eleman varsa o çoğaltmak ve onlara
Hata ayıklayıcısında programınızı çalıştırdığınızda hata hangi satırı yaptı? – kfsone