【问题标题】:Extract string using iterator使用迭代器提取字符串
【发布时间】:2019-06-28 17:20:59
【问题描述】:

我有一个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会返回我对应字符串的第一个字符,那怎么办呢?

【问题讨论】:

  • 你认为*iter为什么会给你字符串的第一个字符?你试过了吗?

标签: c++ string iterator


【解决方案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

【讨论】:

    猜你喜欢
    • 2021-04-14
    • 2012-10-23
    • 2014-04-03
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 2015-12-11
    • 2012-02-24
    相关资源
    最近更新 更多