第二十三模板 18标准模板库
//第二十三模板 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标准模板库相关推荐
- solidworks模板_SOLIDWORKS Costing可以定制模板和标准模板一起使用
SOLIDWORKS Costing可以定制模板和标准模板一起使用 文章来源:SOLIDWORKS代理商-卓盛信息 SOLIDWORKS Costing可以与我们公司的定制模板和标准模板一起使用,以配 ...
- c++远征之模板篇——标准模板库(STL)
以下内容源于慕课网的学习整理,如有侵权,请告知删除. 常见的设计模板 1.vector,向量 (1)本质是对数组的封装: (2)能够在常数时间内完成读取: (3)定义的方法 (4)vector的常用函 ...
- 第二十三模板 18.4算法类
//第二十三模板 18.4算法类 /* STL(标准模板库)通用算法共分四大类 不变序列算法 不对其所作用的容器进行修改 改变序列算法 对其所作用的容器进行修改 排序算法 对容器中的元素采用多种方式进 ...
- 标准模板库(STL)学习指南之List链表
本文转载自天极网,原文地址:http://www.yesky.com/255/1910755.shtml.转载请注明 什么是STL呢?STL就是Standard Template Library,标准 ...
- 【String类和标准模板库】
1.string类 2.智能指针模板类 3.标准模板库 4.泛型编程 5.函数对象 6.算法 7.其他库 1.string类 string类是由头文件string支持的,要使用类,关键要知道它的公有接 ...
- STL 标准模板库详细
STL就是Standard Template Library,标准模板库.这可能是一个历史上最令人兴奋的工具的最无聊的术语.从根本上说,STL是一些"容器"的集合,这些" ...
- C++ STL 标准模板库
STL就是Standard Template Library,标准模板库.这可能是一个历史上最令人兴奋的工具的最无聊的术语.从根本上说,STL是一些"容器"的集合,这些" ...
- 【跟学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 ...
- C++标准模板库STL
目 录 1 STL 简介 ....................................................................................... ...
最新文章
- 分子排列不同会导致_刘珏文: DNA寡核苷酸的冷冻定向拉伸和排列
- 华为NIP网络***检测系统
- 状态反射在体育运动中的作用_建筑用热反射隔热涂料的研究进展
- 若川的 2021 年度总结,弹指之间
- [2-sat]HDOJ3062 Party
- 如何将计算机加入到域环境中,如何在讲计算机加入一个WinXP的域环境
- vs中debug和release版本的区别(转)
- Base64 的 JavaScript 实现 js-base64
- 2.1~3 32位及64位x86处理器介绍
- mysql好玩的代码_搞一些好玩的东西redis
- Origin安装Could not connect to Internet Origin installation requires an Internet Connection
- Office版本问题0x80029C4A
- 计算机电缆检测报告,计算机用屏蔽双绞线DJYPVP-2*2*1.0mm²
- 如何高效开展测试用例评审?附用例评审检查清单及用例评审报告模板
- 为 Vue 项目添加 cnzz 统计
- 邮箱有效性多种验证方式
- 计算机管理信息阶段性测验答案,管理信息系统阶段性学习测验一试题及答案(14页)-原创力文档...
- 优秀工程师应该具备哪些素质_优秀的工程师该具备什么能力?
- 入行10年后,我总结了这份FPGA学习路线
- uni-app 微信小程序 登录/注册功能