顺序容器的访问:访问成员函数的返回是引用(和普通数组一样,普通数组的下标返回值也是数组)
所有的总结都在例子里面
#include <iostream>
#include <string>
#include <vector>
#include <deque>
#include <list>
#include <forward_list>
#include <string>
#include <array>using namespace std;#define LENGTH 10
typedef int TYPE;
typedef vector<TYPE> VECTORTYPE;
typedef deque<TYPE> DEQUETYPE;
typedef list<TYPE> LISTTYPE;
typedef forward_list<TYPE> FORWARD_LISTTYPE;
typedef array<TYPE,LENGTH> ARRAYTYPE;
void print(VECTORTYPE & );
void print(DEQUETYPE & );
void print(LISTTYPE & );
void print(FORWARD_LISTTYPE & );
void print(ARRAYTYPE & );
void print(string &);
void pluralize(size_t ,string &);
void print(list<string> &);
void print(vector<string> &);
int main()
{vector<int> c{1,2,3,4};if(!c.empty()){c.front() = 24; //c.front() 是引用,所以第一个值改为24auto & v = c.back(); //v是c.back()的引用,即引用的引用,v指向c的最后一个元素v = 1024; //v 赋值1024,那么c的最后一个元素赋值为1024auto v2 = c.back(); //v2不是最后一个元素的引用,所以v2改变后,最后一个值不改变v2 = 0;}print(c);return 0;
}
void print(VECTORTYPE &vec)
{for(VECTORTYPE::iterator i = vec.begin() ; i != vec.end() ; ++i){ cout << *i << " ";}cout << endl;return ;
}void print(DEQUETYPE &vec)
{for(DEQUETYPE::iterator i = vec.begin() ; i != vec.end() ; ++i){ cout << *i << " ";}cout << endl;return ;
}void print(LISTTYPE &vec)
{for(LISTTYPE::iterator i = vec.begin() ; i != vec.end() ; ++i){ cout << *i << " ";}cout << endl;return ;
}void print(FORWARD_LISTTYPE &vec)
{for(FORWARD_LISTTYPE::iterator i = vec.begin() ; i != vec.end() ; ++i){ cout << *i << " ";}cout << endl;return ;
}void print(ARRAYTYPE &vec)
{for(ARRAYTYPE::iterator i = vec.begin() ; i != vec.end() ; ++i){ cout << *i << " ";}cout << endl;return ;
}void print(string & s_vec)
{for(string::iterator i = s_vec.begin(); i != s_vec.end() ; ++i) {cout << *i << " ";}cout << endl;
}
void pluralize(size_t cnt,string &word)
{if(cnt > 1)word.push_back('s');//equal to word += 's'
}void print(vector<string> & s_vec)
{for(auto &i :s_vec)cout << i << " ";cout << endl;
}
void print(list<string> & s_list)
{for(auto & i: s_list)cout << i << " ";cout << endl;
}
顺序容器的访问:访问成员函数的返回是引用(和普通数组一样,普通数组的下标返回值也是数组)相关推荐
- 几种用函数指针方式来访问类成员函数的方法总结
前提:假设成员函数不访问类的成员变量. 环境:DEV-C++,别的环境有可能编译无法通过. 代码如下: #include <iostream> using namespace std; c ...
- C++《STL和泛型编程》容器不带/带有成员函数总结
容器不带成员函数count(): array vector list forward_list deque 容器带有成员函数count(): set/multiset map/multima ...
- c++中空指针访问成员函数
如果成员函数没有用到this ,那么空指针可以直接访问 如果成员函数用到this 指针,就要注意,要判断是否为空,防止程序崩溃 #include<iostream>using namesp ...
- c++ hashset的用法_c++ stl容器set成员函数介绍及set集合插入,遍历等用法举例
c++ stl集合set介绍 c++ stl集合(Set)是一种包含已排序对象的关联容器.set/multiset会根据待定的排序准则,自动将元素排序.两者不同在于前者不允许元素重复,而后者允许. 1 ...
- 顺序容器(vector、list、string、deque、forward_list)及迭代器、容器适配器
文章目录 概述 所有容器都支持的操作 迭代器 迭代器支持的操作 迭代器支持的算术运算 容器类型 size_type iterator 和 const_iterator 容器定义和初始化 拷贝初始化 顺 ...
- C++primer第九章 顺序容器 9.1 顺序容器概述 9.2容器库概览
一个容器就是一些特定类型对象的集合.顺序容器(sequentialcontainer)为程序员提供了控制元素存储和访问顺序的能力.这种顺序不依赖于元素的值,而是与元素加入容器 时的位置相对应.与之相对 ...
- C++ primer 第9章 顺序容器
文章目录 顺序容器类型 确定使用哪种顺序容器 容器库概览 容器操作 迭代器 迭代器支持的所有操作 迭代器支持的所有运算 迭代器范围 对构成范围的迭代器的要求 标准库迭代器范围左闭右开的三种性质 容器定 ...
- C++primer十万字笔记 第九章 顺序容器
顺序容器 容器就是特定类型对象的集合,顺序容器为程序员提供了控制元素存储和访问顺序的能力.这种顺序不依赖于元素的值,而是与元素加入容器时的位置相对应.标准库提供了三种容器类型. 顺序容器概述 标 ...
- C++类与对象(类中的六大默认成员函数)
文章目录 类的默认成员函数 构造函数 概念 特征 自己定义构造函数 类中编写 传参方法 编译器自动生成的构造函数 定义变量方式 初始化规则 析构函数 概念 特性 自己定义析构函数 编译器自动生成的析构 ...
- C++类和对象成员函数,静态成员,构造函数和析构函数、初始化列表
类和对象 数据成员的访问 定义成员函数 调用成员函数 私有成员函数 构造函数和析构函数 构造函数成员初始化列表 在构造函数中使用new的注意事项 this指针 const成员函数 运算符重载 友元函数 ...
最新文章
- Nature子刊:遗传发育所白洋组发表高通量分离培养和鉴定根系细菌的方法
- 写出程序删除链表中的所有接点
- java并发编程(2)——wait和notify解析
- apache开源项目--HttpComponents
- 设计模式(3)——装饰者模式(Decorator,结构型)
- 程序员必读的职业规划书 - 思维导图
- java usb camera_Android usb camera设备添加
- 基于linux的贪吃蛇游戏设计_基于Unreal4的战棋类游戏《棋行傀儡》的设计与实现...
- 学习PLC到底要不要买PLC?
- IOS 如何让你的应用快速兼容iPhone5
- OSChina 周四乱弹 —— 用户体验不好就是要出人命的
- 用户管理和用户组管理
- 嵌入式C语言学习笔记附图
- ready和onload的区别
- Microsoft Virtual WiFi Miniport Adapter 使用方法
- Python办公自动化:制作报表并发送到邮箱
- Android--TabLayout+ViewPager+Fragment实现切页展示
- 北京小客车摇号数据的一点质疑
- 高观点下的数学:自然数
- 一个架构师的价值在于,他不仅能看到系统的美,而且能够在建造系统的时候能够把这些美创造出来...
热门文章
- Servlet - Upload、Download、Async、动态注册
- 这是霄哥的天气预报,屌不屌?
- 演练:创建和使用静态库 (C++)
- 职业规划要结合用人单位需求。
- Python安装MySQL库详解(解决Microsoft Visual C++ 9.0 is required )
- HarmonyOS之深入解析编译构建的配置和代码混淆
- Swift之深入解析内存管理的底层原理
- 1470. Shuffle the Array
- 教小学妹学算法:搜索算法解决迷宫问题
- 2017年第八届蓝桥杯C/C++ C组国赛 —— 第四题:小数第n位