容器的访问元素的成员函数(front,back,下标和at)返回的都是引用,如果我们用auto变量去改变保存这些函数的返回值,并且希望通过使用此变量来改变元素的值,那么必须记得将变量定义为引用

#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> v_int{1,2,3,4,5,6,7,8,9};deque<int> d_int{1,2,3,4,5,6,7,8,9,0};for(size_t i = 0; i != v_int.size() ; ++i){int &a = v_int[i];a = 1024;}print(v_int);for(size_t j = 0; j != d_int.size() ; ++j){int &a = d_int.at(j);a = 1025;}print(d_int);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;
}

容器的访问元素的成员函数(front,back,下标和at)返回的都是引用相关推荐

  1. 容器的访问元素的成员函数(front,back,下标和at)返回的都是引用,如果顺序容器是const的对象,那么返回的是const的引用

    顺序容器的访问元素的成员函数(front,back,下标和at)返回的都是引用,如果顺序容器是const的对象,那么返回的是const的引用,下面有个例子说明问题: #include <iost ...

  2. leetcode中使用c++需要注意的点以及各类容器的初始化、常用成员函数

    目录 1.传引用 2.vector使用 初始化方法 常用成员函数 3.字符串string 初始化方法 常用成员函数 4.哈希表 unordered_map 初始化 常用成员函数 示例:计数器 5.哈希 ...

  3. 类与对象:类的6个默认成员函数: 构造函数、析构函数、拷贝构造函数、赋值操作符重载、默认拷贝构造与赋值运算符重载的问题、const成员函数、 取地址及const取地址操作符重载

    1.类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类.任何一个类在我们不写的情况下,都会自动生成下面6个默认成员函数. 构造函数 析构函数 拷贝构造函数 赋值操作符重载 const成员函数 ...

  4. java设计一个顺序表类的成员函数,用java编写一个逐个输出顺序表中所有数据元素的成员函数...

    import java.util.ArrayList; import java.util.List; public class Test { /** * @param args */ public s ...

  5. C++ Primer 第九章 顺序容器

    由于书籍上写的已经很经典了,故大部分用图片的形式来阐述概念,代码纯手打进行验证. 1.顺序容器类型:vector.deque.list.forword_list.array.string. 2.顺序容 ...

  6. C++ Primer 第9章 顺序容器 第一次学习笔记

    1. 顺序容器概述 #include <vector> //可变大小数组.支持快速随机访问.在尾部之外的位置插入或删除元素可能很慢 #include <deque> //双端队 ...

  7. 顺序容器(vector、list、string、deque、forward_list)及迭代器、容器适配器

    文章目录 概述 所有容器都支持的操作 迭代器 迭代器支持的操作 迭代器支持的算术运算 容器类型 size_type iterator 和 const_iterator 容器定义和初始化 拷贝初始化 顺 ...

  8. 《C++ Primer 5th》笔记(9 / 19):顺序容器

    文章目录 顺序容器概述 确定使用哪种顺序容器 容器库概览 迭代器 迭代器范围 使用左闭合范围蕴含的编程假定 容器类型成员 begin和end成员 容器定义和初始化 将一个容器初始化为另一个容器的拷贝 ...

  9. C++primer第九章 顺序容器 9.3 顺序容器操作

    9.3顺序容器操作 顺序容器和关联容器的不同之处在于两者组织元素的方式.这些不同之处直接关系到了元素如何存储.访问.添加以及删除.上一节介绍了所有容器都支持的操作(罗列于表9.2(第295页)).本章 ...

最新文章

  1. BZOJ5092:[Lydsy1711月赛]分割序列(贪心,高维前缀和)
  2. 遗传算法MATLAB工具包简介
  3. 再见!RESTful...
  4. 将城市按照拼音首字母进行分类
  5. SHA256算法原理及其实现
  6. python进阶太难_Python进阶
  7. 微信小程序商品详情页面开发案例
  8. Python数据分析项目实例5: 分析某餐饮企业的订单详情表数据(基于matplotlib的python数据可视化分析)
  9. msfvenom制作360,腾讯免杀木马
  10. docker中报错Error: Failed to download metadata for repo ‘appstream‘: Cannot prepare internal mirro
  11. linux 格式化u盘 fat32,Ubuntu下格式化U盘的方法(基于格式化命令)
  12. Win XP中恢复受损的注册表
  13. 通过微信开发测试号进行微信登录
  14. linux时间同步负数,Ubuntu 18.04 Bionic Beaver Linux上的NTP服务器配置
  15. Arduino定义数组,求数组长度,
  16. 《零起点,python大数据与量化交易》
  17. android 小球曲线运动,如图所示,将一小球向斜向上抛出,小球做复杂的曲线运动.实际分析处理...
  18. 电子元器件分销业ERP系统供应链解决方案
  19. 牛逼的python代码_牛逼啊!一个随时随地写Python代码的神器
  20. jai_imageio-1.1-alpha.jar

热门文章

  1. knowladge_网站开发_jQuery插件_Clock Demo
  2. 制作WEB在线编辑器-插入HTML标签
  3. Java Web开发小结
  4. linux日志本地存储和网络存储,文件系统和本地存储管理 1
  5. GitHub之深入解析脚本·自定义与修改GitHub来更好地为特定的工作流程工作
  6. MapReduce不同进度的Reduce都在干什么?
  7. LeetCode 92. Reverse Linked List II
  8. 【机器视觉】 dev_set_contour_style算子
  9. 【机器视觉】 assign_at算子
  10. 虚拟机3种网络模式(桥接、nat、Host-only)