使用迭代器提取字符串

时间:2019-02-04 22:13:39

标签: c++ string iterator

我有一个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 :(得分:1)

如果您可以使用C ++ 11(我假设您已经使用过auto,那么您可以使用range-based for loop

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

您最初提出的问题,

  

因为* iter会向我返回相应字符串的第一个字符

这是不正确的,* iter将在向量内的相关位置返回对string的引用。您的循环虽然不会增加迭代器,但最终会导致无限循环。参见https://wandbox.org/permlink/pCe1oQDusDbJ8HjK