c++primer之顺序容器(访问元素)
来源:互联网 发布:摇钱树软件官网 编辑:程序博客网 时间:2024/05/20 16:09
- 包括array在内的每个顺序容器都有一个front成员函数,而除forward_list之外的所有顺序容器都有一个back成员函数。这两个操作分别返回首元素和尾元素的引用。
// 在解引用一个迭代器或者调用front或back之前检查是否有元素if(!c.empty()){ // val和val2是c中第一个元素的拷贝 // c.begin()返回的是地址,所以要加解引用操作符。 // c.front()返回的是元素的引用 auto val = *c.begin(), val2 = c.front(); // val3和val4是c中最后一个元素值的拷贝 // c.end()返回的是尾元素之后的地址,所以地址减1以后,解引用才是尾元素的引用。 auto last = c.end(); auto val3 = *(--last); // 不能递减forward_list迭代器 auto val4 = c.back(); // forward_list不支持}
访问成员函数返回的是引用: 在容器中访问元素的成员函数(即,front、back、下标、at)返回的都是引用。如果容器是一个const对象,则返回的是const引用。如果容器不是const的,则返回值是普通引用。
if(!c.empty()){ c.front() = 42; //将42赋予c中的第一个元素 auto &v = c.back(); //获取指向最后一个元素的引用 v= 1024; //改变c中的元素 auto v2 = c.back(); // v2不是一个引用,它是c.back()的一个拷贝 v2 = 0; //未改变c中的元素,要想改变c中元素的值,必须记得将变量定义成引用类型}
下标操作和安全的随机访问
vector<string> svec; //空vectorcout << svec[10]; //运行时错误:svec中没有元素!// 如果我们希望确保下标是合法的,可以使用at成员函数。at成员函数类似下标运算符,但如果// 下标越界,at会抛出一个out_of_range异常。cout << svec.at(0); //抛出一个out_of_range异常。
0 0
- c++primer之顺序容器(访问元素)
- c++primer之顺序容器(添加元素)
- c++primer之顺序容器(容器库概览)
- 《C++primer》 顺序容器
- C++Primer 顺序容器
- 【C/C++】顺序容器访问元素和删除元素
- C++primer 顺序容器(1)
- C++primer 顺序容器(2)
- C++primer 顺序容器(3)
- C++primer【笔记】 顺序容器
- 顺序容器5 访问元素
- C++ 顺序容器访问元素
- C++ primer(九)再谈容器之顺序容器
- c++primer学习笔记 ( 第九章 顺序容器)
- 细嚼慢咽C++primer(5)——顺序容器
- C++Primer学习笔记(9)顺序容器
- C++ Primer学习之(9)——顺序容器
- C++ Primer 第四版读书笔记(八)之顺序容器
- 1011. A+B和C (15)
- 卡尔曼(Kalman) 滤波跟踪一个旋转的点程序
- Leetcode: Dungeon Game
- 费马 欧拉定理——SHUoj 1949 Infinite 3
- 探索Android中的Parcel机制(上)
- c++primer之顺序容器(访问元素)
- 2.OC之NSString数组常用功能简介
- python常用web框架性能测试(django,flask,bottle,tornado)
- 1012. 数字分类 (20)
- uva 1262(Password)
- html基本构成元素
- 从AIDL开始谈Android进程间Binder通信机制
- 数字排序-CCF测试往届题
- JavaWeb-ServletContext对象总结