Извлечь строку с помощью итератора - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть vector<string>, и, используя итератор, мне нужно извлечь всю строку, на которую указывает итератор, в цикле:

vector<string> v;   
auto iter = v.begin();  
while(iter != v.end()){ 
    auto s = //extract the string corresponding to the current iterator position
}

Поскольку *iter вернет мне первый символсоответствующей строки, как это можно сделать?

1 Ответ

0 голосов
/ 05 февраля 2019

Если у вас есть доступ к C ++ 11 (который, как я предполагаю, у вас есть, поскольку вы использовали auto), вы можете использовать в диапазоне для цикла :

for (const std::string &value : v)
{
    // Do something with value
}

Ваш первоначальный вопрос задан,

Так как * iter вернет мне первый символ соответствующей строки

Это неверно, * iterвернет ссылку на string в соответствующей позиции в векторе.Ваш цикл не увеличивает итератор, так что вы получите бесконечный цикл.См https://wandbox.org/permlink/pCe1oQDusDbJ8HjK

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...