//第二十三模板 18标准模板库
//1 容器 容器是包含其他对像的对像,标准C++ 库中提供了一系列的容器类
//可以分为两种类型,顺序和关联类型,顺序容器可提供对自身元素的顺序或者随机访问,关联容器则过滤掉了一些元素,只按关键值访问有关元素//2 顺序容器
//标准C++库提供了三种顺序容器,分别为vector list 和deque//2.1 向量容器
/*#include <iostream>
#include <vector>
#include <string>
using namespace std;
const int num=2;
int main()
{vector<double>price(num);vector<string>book(num);cout<<"开始录入"<<num<<"本书的数据"<<endl;for(int i=0; i<num; i++){cout<<"请输入第"<<i+1<<"本书的书名:";getline(cin,book[i]);cout<<"请输入价格:";cin>>price[i];cin.ignore();}for(int i=0; i<num; i++){cout<<"第"<<i+1<<"本书的书名:";cout<<book[i]<<"\t"<<"价格:"<<price[i]<<endl;}cout<<"max_size:"<<book.max_size()<<endl;return 0;
}*//*
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class people
{
public:people();people(const string&name, const int age);people(const people&r);~people();void SetName(const string&name);string GetName()const;void SetAge(const int age);int GetAge()const;people&operator=(const people&r);
private:string theName;int theAge;
};people::people():theName("默认创建的新人"),theAge(52){}people::people(const string&name, const int age):theName(name),theAge(age){}people::people(const people&r):theName(r.GetName()),theAge(r.GetAge())
{cout<<"复制构造函数"<<endl;
}
people::~people(){cout<<"析构函数执行"<<endl;}void people::SetName(const string&r)
{theName = r;
}string people::GetName()const
{return theName;
}void people::SetAge(const int age)
{theAge = age;
}int people::GetAge()const
{return theAge;
}people&people::operator=(const people&r)
{cout<<"operator=函数执行";theName = r.GetName();theAge = r.GetAge();return *this;
}ostream &operator<<(ostream&out, const people&r)
{out<<r.GetName()<<"的年龄是:"<<r.GetAge()<<endl;return out;
}template<class T>
void show(const vector<T>&v); //定认一个容器参数为一个模板值
typedef vector<people>man;    //man的在这里定义一个容器,里面放的是people
int main()
{people Jack;people Mary("Mark",24);people Tom("Tom",18);people Jesson("Jesson",29);man non;cout<<"non:"<<endl;show(non);man manyMan(3);cout<<"manyMan(3):"<<endl;show(manyMan);manyMan[0] = Mary;manyMan[1] = Tom;manyMan[2] = Jesson;cout<<"为容器manyMan(3)分配个人后:"<<endl;show(manyMan);people Ketty("Ketty",58);manyMan.push_back(Ketty);manyMan.push_back(Jack);cout<<"manyMan()增加二个人后:"<<endl;show(manyMan);manyMan[0].SetName("Rose");manyMan[0].SetAge(16);cout<<"设置manyMan[0]后:"<<endl;system("pause");return 0;
}template<class T>
void show(const vector<T> &v)
{cout<<"max_size()="<<v.max_size();cout<<"\tsize()="<<v.size();cout<<"\t capacity()="<<v.capacity();cout<<"\t"<<(v.empty()?"空":"不为空");cout<<endl;for(int i=0; i<v.size(); ++i){cout<<v[i]<<endl;}cout<<endl;
}*/
/*
Constructors() 构造函数
Operators()    对vector进行赋值或比较
assign()       对vector中的元素赋值
at()           返回指定位置的元素
back()         返回最末一个元素
begin()        返回第一个元素的迭代器
capacity()     返回vector所能容纳的元素数量(在不重新分配内存的情况下)
clear()        清空所有元素
empty()        判断Vector是否为空(返回true时为空)
end()          返因最末元素的迭代器(实指向最末元素的下一个位置)
erase()        删除指定元素
front()        返回第一个元素
get_allocator()   返回vector的内存分配器
insert()        插入元素的vctor中
pop_back()      移除最后一元素
push_back()     在vector最后添加一个元素
rbegin()        返回vector尾部的逆迭代器
rend()          返回vector起始的逆迭代器
reserve()       设置vector最小的元素容纳数量
resize()        改变Vector元素的数量大小
size()          返回vector元素数量的大小
swap()          交换两个Vector
*/

  

转载于:https://www.cnblogs.com/xiangxiaodong/archive/2012/10/04/2711695.html

第二十三模板 18标准模板库相关推荐

  1. solidworks模板_SOLIDWORKS Costing可以定制模板和标准模板一起使用

    SOLIDWORKS Costing可以定制模板和标准模板一起使用 文章来源:SOLIDWORKS代理商-卓盛信息 SOLIDWORKS Costing可以与我们公司的定制模板和标准模板一起使用,以配 ...

  2. c++远征之模板篇——标准模板库(STL)

    以下内容源于慕课网的学习整理,如有侵权,请告知删除. 常见的设计模板 1.vector,向量 (1)本质是对数组的封装: (2)能够在常数时间内完成读取: (3)定义的方法 (4)vector的常用函 ...

  3. 第二十三模板 18.4算法类

    //第二十三模板 18.4算法类 /* STL(标准模板库)通用算法共分四大类 不变序列算法 不对其所作用的容器进行修改 改变序列算法 对其所作用的容器进行修改 排序算法 对容器中的元素采用多种方式进 ...

  4. 标准模板库(STL)学习指南之List链表

    本文转载自天极网,原文地址:http://www.yesky.com/255/1910755.shtml.转载请注明 什么是STL呢?STL就是Standard Template Library,标准 ...

  5. 【String类和标准模板库】

    1.string类 2.智能指针模板类 3.标准模板库 4.泛型编程 5.函数对象 6.算法 7.其他库 1.string类 string类是由头文件string支持的,要使用类,关键要知道它的公有接 ...

  6. STL 标准模板库详细

    STL就是Standard Template Library,标准模板库.这可能是一个历史上最令人兴奋的工具的最无聊的术语.从根本上说,STL是一些"容器"的集合,这些" ...

  7. C++ STL 标准模板库

    STL就是Standard Template Library,标准模板库.这可能是一个历史上最令人兴奋的工具的最无聊的术语.从根本上说,STL是一些"容器"的集合,这些" ...

  8. 【跟学C++】C++STL标准模板库——算法详细整理(下)(Study18)

    文章目录 1.简介 2.STL算法分类及常用函数 2.2.变序算法(二) 2.2.1 替换算法(2个) 2.2.2 排序算法(6个) 2.2.3 分区算法(4个) 2.2.4 可用于排序容器的算法(3 ...

  9. C++标准模板库STL

    目 录 1 STL 简介 ....................................................................................... ...

最新文章

  1. 分子排列不同会导致_刘珏文: DNA寡核苷酸的冷冻定向拉伸和排列
  2. 华为NIP网络***检测系统
  3. 状态反射在体育运动中的作用_建筑用热反射隔热涂料的研究进展
  4. 若川的 2021 年度总结,弹指之间
  5. [2-sat]HDOJ3062 Party
  6. 如何将计算机加入到域环境中,如何在讲计算机加入一个WinXP的域环境
  7. vs中debug和release版本的区别(转)
  8. Base64 的 JavaScript 实现 js-base64
  9. 2.1~3 32位及64位x86处理器介绍
  10. mysql好玩的代码_搞一些好玩的东西redis
  11. Origin安装Could not connect to Internet Origin installation requires an Internet Connection
  12. Office版本问题0x80029C4A
  13. 计算机电缆检测报告,计算机用屏蔽双绞线DJYPVP-2*2*1.0mm²
  14. 如何高效开展测试用例评审?附用例评审检查清单及用例评审报告模板
  15. 为 Vue 项目添加 cnzz 统计
  16. 邮箱有效性多种验证方式
  17. 计算机管理信息阶段性测验答案,管理信息系统阶段性学习测验一试题及答案(14页)-原创力文档...
  18. 优秀工程师应该具备哪些素质_优秀的工程师该具备什么能力?
  19. 入行10年后,我总结了这份FPGA学习路线
  20. uni-app 微信小程序 登录/注册功能

热门文章

  1. OpenCV中矩阵的归一化*(Normalize函数)
  2. canny算子的运用
  3. JS 获取 鼠标 坐标
  4. Spring Boot中使用Swagger2构建RESTful APIs
  5. 设计模式 结构型模式 外观模式(Facade Pattern)
  6. 504. Base 7
  7. [moka同学笔记]PHP操作Redis收集
  8. 其实吧,微信就是已经用电脑上线,第二天消息还是从手机上重新接收
  9. php xml 互相转换
  10. office web apps 只有64bit