STL 迭代器 iterator const

STL迭代器很多时候可以当成指针来使用。

但是指针一般可以用const来控制访问。

那迭代器呢。

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    vector<int> vecs;
    vecs.push_back(1);
    vecs.push_back(3);
    vecs.push_back(2);

    //1. 表示改迭代器为const,不能修改。但是指向的值可以改变. 相当于int * const a
    const vector<int>::iterator p = vecs.begin();
    *p = 10;
    //p++;//编译错误

    //2. 表示迭代器指向的值为const, 相当于const int * a
    vector<int>::const_iterator p1 = vecs.begin();
    //*p1 = 10;//编译错误
    p1++;
    return 0;
}
时间: 2024-10-10 10:04:56

STL 迭代器 iterator const的相关文章

STL之迭代器(iterator)

1 头文件 所有容器有含有其各自的迭代器型别(iterator types),所以当你使用一般的容器迭代器时,并不需要含入专门的头文件.不过有几种特别的迭代器,例如逆向迭代器,被定义于<iterator>中. 2 迭代器类型 迭代器共分为五种,分别为: Input iterator.Output iterator.Forward iterator.Bidirectional iterator.Random access iterator. 2.1 Input(输入)迭代器 只能一次一个向前读取

STL 笔记(四) 迭代器 iterator

stl 中迭代器能够理解为面向对象版本号的广义指针,提供了对容器中的对象的訪问方法,能够遍历容器全部元素.也能够訪问随意元素.stl 迭代器有下面五种: Input iterators   仅仅读,输入迭代器,支持如:istream Output iterators  仅仅写,输出迭代器.支持如:ostream.inserter Forward iterators 读写,前向迭代器.仅仅能前向移动 Bidirectional iterators 读写,双向迭代器,可以双向移动.支持如: list

C++迭代器 iterator

1. 迭代器(iterator)是一中检查容器内元素并遍历元素的数据类型.(1) 每种容器类型都定义了自己的迭代器类型,如vector:vector<int>::iterator iter;这条语句定义了一个名为iter的变量,它的数据类型是由vector<int>定义的iterator类型.(2) 使用迭代器读取vector中的每一个元素:vector<int> ivec(10,1);for(vector<int>::iterator iter=ivec.

C++迭代器 iterator【转】

1. 迭代器(iterator)是一中检查容器内元素并遍历元素的数据类型.(1) 每种容器类型都定义了自己的迭代器类型,如vector:vector<int>::iterator iter;这条语句定义了一个名为iter的变量,它的数据类型是由vector<int>定义的iterator类型.(2) 使用迭代器读取vector中的每一个元素:vector<int> ivec(10,1);for(vector<int>::iterator iter=ivec.

STL 之 iterator traits 备忘

//5种迭代器,为了激活重载机制,定义的5个类型.每种迭代器就是一个类型. struct input_iterator_tag{}; struct output_iterator_tag{}; struct forward_iterator_tag : public input_iterator_tag{}; struct bidirectional_iterator_tag:public forward_iterator_tag{}; struct random_access_iterator

STL迭代器笔记

STL迭代器简介 标准模板库(The Standard Template Library, STL)定义了五种迭代器.下面的图表画出了这几种: input         output \            / forward     |    bidirectional     |        random access 要注意,上面这图表并不是表明它们之间的继承关系:而只是描述了迭代器的种类和接口.处于图表下层的迭代器都是相对于处于图表上层迭代器的扩张集.例如:forward迭代器不但

STL迭代器辅助函数——advance

Advance(i, n) increments the iterator i by the distance n. If n > 0 it is equivalent to executing ++i n times, and if n < 0 it is equivalent to executing --i n times. If n == 0, the call has no effect. advance(i, n)使得迭代器i增加一个长度n.如果n>0,那么advance(i

c/c++ 标准库 迭代器(iterator)

c/c++ 标准库 迭代器 begin和end运算符返回的具体类型由对象是否是常量决定,如果对象是常量,begin和end返回const_iterator:如果对象不是常量,返回iteraotor 1,但凡是使用了迭代器的循环体,都不要向迭代器所属的容器添加元素. 2,不能在范围for循环中向vector对象添加元素 标准库 迭代器(iterator)的小例子 test1~test8 #include <iostream> #include <string> #include &l

LeetCode 5123. 字母组合迭代器 Iterator for Combination

地址 https://leetcode-cn.com/contest/biweekly-contest-15/problems/iterator-for-combination/ 题目描述请你设计一个迭代器类,包括以下内容: 一个构造函数,输入参数包括:一个 有序且字符唯一 的字符串 characters(该字符串只包含小写英文字母)和一个数字 combinationLength .函数 next() ,按 字典序 返回长度为 combinationLength 的下一个字母组合.函数 hasN