Проверьте Iterator Poinitng на первый элемент строки - PullRequest
0 голосов
/ 01 марта 2019

У меня есть функция, и я передаю итератор и строку, чтобы проверить, указывает ли итератор на первый элемент или нет.Однако я получаю неожиданные результаты.

int main()
{
 std::string str="abc";
 std::string::iterator strit = str.begin();
 iteratorProperty(strit, str);
}

void iteratorProperty(std::string::iterator it, std::string str) {
//std::next(it);
int count = 0;
for(auto i = it; i <str.end();i++) {

    count++;
}
std::cout<<count<<std::endl;
}

Это утверждение cout возвращает мне значение 51. Может ли кто-нибудь помочь мне понять это?

Спасибо.

1 Ответ

0 голосов
/ 01 марта 2019

Я передавал мелкую копию вместо глубокой.

Вот почему я получал неопределенные значения.

Правильная подпись:

void iteratorProperty(std::string::iterator it, std::string& str) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...