博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
插入容器STL学习笔记(八) 序列式容器 共性
阅读量:5924 次
发布时间:2019-06-19

本文共 3055 字,大约阅读时间需要 10 分钟。

改章节是一篇关于插入容器的帖子

    

序列式容器

    单动态数组vector只合适在后面插入删除  , 其中有个特化vector<bool> 节省空间  8个元素一个字节 

双端队列deque(多个动态数组)前后都合适插入删除   
链表  list 插入删除都简单,但指定访问某个数据不方便

    

    除了可以应用外,序列式容器还可以应用以下函数:

    

1构造函数,指定元素个数和初始值(初始值默许为零初始化)

    vector<int> vtest(3,4); //3个4

    vector<int> vtest2(3); //3个0

    

    

2 函数

    插入: 插入多个相同值 insert(pos,n,element) , 插入区间中的数 insert(pos,pos_beg,pos_end)

    赋值: assign(n,element) ,assign(pos_beg,pos_end)

    调整大小:resize(n,element=零初始化) 第二个参数是默许采用零初始化的新增元素,有写则采用element停止初始化

    首尾: .front()  .back() 获得首尾元素

    增删: 在末端插入.push_back(element) ,  在末端删除(返回void,不返回值) .pop_back()  

    

    

3  序列式容器个性例子,

    

    每日一道理
成熟是一种明亮而不刺眼的光辉,一种圆润而不腻耳的音响,一种不需要对别人察颜观色的从容,一种终于停止了向周围申诉求告的大气,一种不理会哄闹的微笑,一种洗刷了偏激的淡漠,一种无须声张的厚实,一种并不陡峭的高度。
#include
#include
using namespace std;#include "show.h"#include
int main(){ //序列式容器特有的构造函数 deque
test(3,4); //3个4 show(test.begin(), test.end());// 4 4 4 deque
test2(3); //3个0 show(test2.begin(), test2.end());// 0 0 0 deque
ds;// deque< vector
> vs; //还可以这样定义 但 > >旁边要有空格 /*末端插入 效率最高*/ ds.push_back("hello");//在末端插入 ds.push_back("world"); ds.push_back("cplusplus"); ds.push_back("abc"); show(ds.begin() , ds.end() , ','); //hello,world,cplusplus,abc, /*在指定地方插入*/ ds.insert(++++ds.begin(),2,"china");//在第三个元素前面插入2个china show(ds.begin() , ds.end() , ',');//hello,world,china,china,cplusplus,abc, string s[3] = {"s1","s2","s3"}; ds.insert(--ds.end(),s,s+3); //最后一个元素前面插入一个区间的数据 show(ds.begin() , ds.end() , ',');//hello,world,china,china,cplusplus,s1,s2,s3,abc, ds.pop_back(); //删掉末端 show(ds.begin() , ds.end() , ',');//hello,world,china,china,cplusplus,s1,s2,s3, //标准容器中的函数 删除指定位置 ds.erase(ds.begin()); show(ds.begin() , ds.end() , ',');//world,china,china,cplusplus,s1,s2,s3, /*调整大小*/ cout << "ds.size:" << ds.size() << endl; //8 ds.resize(12); //零初始化 即空字符串 show(ds.begin() , ds.end() , ',');//hello,world,china,china,cplusplus,s1,s2,s3,,,,, cout << "ds.size:" << ds.size() << endl; //12 ds.resize(15,"new");//增长大小,制定新增值 show(ds.begin() , ds.end() , ',');//hello,world,china,china,cplusplus,s1,s2,s3,,,,,new,new,new, cout << "ds.size:" << ds.size() << endl; //15 ds.resize(7);//减小大小后面的被删除 show(ds.begin() , ds.end() , ',');//hello,world,china,china,cplusplus,s1,s2,s3, cout << "ds.size:" << ds.size() << endl; //7 /*首尾数据*/ cout << "front:" << ds.front() << ",back:" << ds.back() << endl; /*修改数据*/ //1 单个赋值 ds.front() = "你好" ; ds.back() = "中国"; show(ds.begin() , ds.end() , ',');// 你好,china,china,cplusplus,s1,s2,中国, //2 团体赋值 ds.assign(5,"哈哈"); show(ds.begin() , ds.end() , ',');//哈哈,哈哈,哈哈,哈哈,哈哈, string s2[3] = {"数学","语文","英语"}; ds.assign(s2, s2+3); show(ds.begin() , ds.end() , ',');//数学,语文,英语, }

    show.h

#ifndef SHOW_H#define SHOW_Htemplate
void show(T beg,T end,char ch = ' '){ while(beg != end) { cout << *beg++ << ch; } if(ch != '\n') cout << endl;}#endif

    

    

    

文章结束给大家分享下程序员的一些笑话语录: Borland说我很有前途,Sun笑了;Sun说我很有钱,IBM笑了;IBM说我很专业,Sybase笑了;Sybase说我数据库很牛,Oracle笑了;Oracle说我是开放的,Linux笑了;Linux说我要打败Unix,微软笑了;微软说我的系统很稳定,我们都笑了。

转载地址:http://eaxvx.baihongyu.com/

你可能感兴趣的文章
MySQL 运行状态监控方法
查看>>
Fedora 12 环境下Gtk+开发环境配置
查看>>
vs2008中在解决方案资源管理器查看当前打开文件
查看>>
ubuntu14.04 鼠标闪烁问题
查看>>
jQuery Lightbox(balupton版)图片展示插件demo
查看>>
Elasticsearch集群的简单搭建
查看>>
SCRT-SSH传输文件
查看>>
Python非常cool的svg格式chart生成库pygal
查看>>
Telnet部署与启动 windows&&linux
查看>>
行列式的乘法定理
查看>>
有1000瓶水,3个瓶子可以再换1瓶,一共可以喝多少瓶?
查看>>
Search in Rotated Sorted Array ||
查看>>
NUC_HomeWork1 -- POJ2067(最短路)
查看>>
卸载mysql
查看>>
二叉树的遍历
查看>>
The Distinguish of the share or static lib in MFC
查看>>
如何导出数据库的数据词典
查看>>
linux下内存释放问题
查看>>
让Java和JavaScript进行交互
查看>>
android 上传文件
查看>>