c++string & vector &迭代器

迭代器

迭代器:提供一种对对象的间接访问,就迭代器而言,其对象是容器中的元素或者string中的字符。

获取迭代器

有迭代器的类型同时拥有返回迭代器的成员,比如begin(),end()
begin()负责返回指向第一个元素的迭代器
end()负责返回指向尾后迭代器。

迭代器运算符

迭代器使用==,!=比较是否相等,如果两个迭代器指向相同的成员或者都是同一个成员的尾后迭代器。

*iter 返回迭代器iter指向的引用
iter->mem 解应用iter并获取该元素名为mem的成员,等价于(*iter).mem
++iter/--iter 令iter指向容器中下/前一个元素
==/!= 迭代器相等/不等

示例code

#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main()
{
    vector<string> vi;
    for(int i=0;i<100;i++)
    {
        vi.push_back("abc" + to_string(i));
    }

    if (vi.begin() != vi.end())
    {
        auto it = vi.begin();
        cout << "vi.begin:"<<*it <<endl;
    }

    for (auto it=vi.cbegin();it!=vi.cend();it++)
    {
        if(!(*it).empty())
        {
            cout << *it << endl;
            cout << it->c_str() << endl;
        }
    }

    std::cout << "Hello world" << std::endl;

    return 0;
}

迭代器类型

iterator :
const_iterator:
如果容器对象为常量,则begin()返回const_iterator,否则返回iterator。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。