C++ STL函数库 vector(henu.hjy)
我们需要明白vector这是个什么??
答:通俗而言——一个长度根据所需自动改变的数组,同时还可以用于以邻接表的方式进行存储图
使用前提:
头文件#include <vector>
使用C时,还应该加入using namespace std;
声明调用方式:
vector<typename> name;
typename 可以是任何基本类型,各种数、字符、结构体、STL容器(vector、set、queue....)
注意!!如果typename是vector时">>"之间应有空格!!
vector<vector<int>_>vi;//该_为空格!!!!!!
以下是代码其中一一解释了常用函数的作用,这些注释也是代码中的重难点!
#include <iostream>
#include <vector>using namespace std;//vector 应用解析
//vector<typename> vi;
//vector<vector<int> >vi;两个>>之间应有空格
//vector<typename> vi[ArraySize];理解为纵横向都可以变的二维数组
//vector<typename>::iterator it = vi.begin();指将第一个元素的特别地址赋给迭代器 用*(it);进行取值
//vi.push_back();
//vi.pop_back();
//vi.size(); vi.clear(); //size是长度,clear是清空//vi.insert(it,x);用一个迭代器it插入一个元素x vi.erase(vi.begin()+3); vi.erase(vi.begin()+1,vi.begin()+3);
//vi.begin()+i; 相当于迭代器(特别的地址),仅可以在vector和string中使用
//vi.end(); 指尾元素后的另一个
//vi[i]与*(vi.begin()+i)是等价的int main()
{vector<int> vi;for(int i = 1;i<=5;i++){vi.push_back(i);}vector<int>::iterator it = vi.begin();//三种取值方式//(1)cout<<"用第一种方式输出:"<<endl;for(int i = 0;i<vi.size();i++){cout<<vi[i]<<" ";}cout << endl;//(2)cout<<"用第二种方式输出:"<<endl;for(int i=0;i<vi.size();i++){cout<<*(it+i)<<" ";}cout << endl;//(3)cout<<"用第三种方式输出:"<<endl;for(vector<int>::iterator it1 = vi.begin() ; it1!=vi.end() ; it1++){//不可用 it1<vi.end();cout<<*(it1)<<" ";}cout<<endl;//删除尾元素vi.pop_back();cout<<"删除尾元素后:"<<vi.size()<<endl;vi.insert(vi.begin()+2,47);vi.erase(vi.begin()+1);cout<<"删除尾元素,并在第三个元素位置加入47,而后删除第二个元素,后的输入结果:"<<endl;for(int i = 0;i<vi.size();i++){cout<<vi[i]<<" ";}cout<<endl;vi.erase(vi.begin()+1,vi.begin()+3);cout<<"删除区间[第二个,第四个元素)后长度"<<vi.size()<<"以及其结果"<<endl;for(int i = 0;i<vi.size();i++){cout<<vi[i]<<" ";}cout<<endl;vi.clear();cout<<"清空后的长度"<<vi.size()<<endl;return 0;
}
最后我从网上找了一下stl中vector的其他一些函数(仅供参考):
c++ stl容器set成员函数:begin()--返回指向第一个元素的迭代器
c++ stl容器set成员函数:clear()--清除所有元素
c++ stl容器set成员函数:count()--返回某个值元素的个数
c++ stl容器set成员函数:empty()--如果集合为空,返回true
c++ stl容器set成员函数:end()--返回指向最后一个元素的迭代器
c++ stl容器set成员函数:equal_range()--返回集合中与给定值相等的上下限的两个迭代器
c++ stl容器set成员函数:erase()--删除集合中的元素
c++ stl容器set成员函数:find()--返回一个指向被查找到元素的迭代器
c++ stl容器set成员函数:get_allocator()--返回集合的分配器
c++ stl容器set成员函数:insert()--在集合中插入元素
c++ stl容器set成员函数:lower_bound()--返回指向大于(或等于)某值的第一个元素的迭代器
c++ stl容器set成员函数:key_comp()--返回一个用于元素间值比较的函数
c++ stl容器set成员函数:max_size()--返回集合能容纳的元素的最大限值
c++ stl容器set成员函数:rbegin()--返回指向集合中最后一个元素的反向迭代器
c++ stl容器set成员函数:rend()--返回指向集合中第一个元素的反向迭代器
c++ stl容器set成员函数:size()--集合中元素的数目
c++ stl容器set成员函数:swap()--交换两个集合变量
c++ stl容器set成员函数:upper_bound()--返回大于某个值元素的迭代器
c++ stl容器set成员函数:value_comp()--返回一个用于比较元素间的值的函数
C++ STL函数库 vector(henu.hjy)相关推荐
- C++ STL函数 string(henu.hjy)
string是字符串 前提:#include <string> (C中应加入using namespace std:) 注释中给了各种string函数的用法,大家可以借鉴一下 #inclu ...
- C++ STL函数 map (henu.hjy)
map是一个映射,具有数组不具有的优势(注释1) 在代码开头注释中解释了map中的常用函数以及遍历写入方法. 一下代码请参考: #include <iostream> #include & ...
- C++ STL函数 queue (henu.hjy)
队列是一种受限制的数据结构,在注释中介绍了queue相关函数的用法.可以copy代码到编译器结合注释,理解队列. 另外队列是一种先进先出的操作,而且仅能在一端进一端出 #include <ios ...
- C++ STL函数库 pair (henu.hjy)
就用法见注释,有需要可复制到编译器运行 #include <iostream> #include <utility> //当然也可以用map #include <stri ...
- C++ STL函数库 stack (henu.hjy)
栈是一个先进后出的限制性的数据结构,注释中列出了常见的stack的函数 #include <iostream> #include <stack>using namespace ...
- STL函数库的讲解(1)
1.什么是STL? STL英文全称 standard template library,中文可译为标准模板库或者泛型库,其包含有大量的模板类和模板函数,是 C++ 提供的一个基础模板的集合,用于完成诸 ...
- STL标准库vector笔记
vector::assign()用法: 1 #include "stdafx.h" 2 #include <iostream> 3 #include <vecto ...
- C++算法练习题 T1(henu.hjy)
这个题有些尴尬,我在蓝桥官网并没有通过验证,但是给的样例输出通过并正确了,我不太明白哪里出错了,如果有看到的朋友可以在留言给我,万分感谢!!! 问题描述 给两组数,各n个. 请调整每组数的排列顺序,使 ...
- C++ STL函数 结构体数组sort()排序(henu.hjy)
对于C++中sort()需要加入 #include <algorithm>该头文件 sort(首地址[必填],尾地址[必填],排序cmp函数[选填]) sort对于基本数据类型默认从小到大 ...
最新文章
- 操作系统学习笔记 第五章:文件管理(王道考研)
- 深度学习--TensorFlow(7)拟合(过拟合处理)(数据增强、提前停止训练、dropout、正则化、标签平滑)
- R语言使用vtreat包的designTreatmentsC函数构建数据预处理计划、vetreat包的score frame(新生成数据变量的指南)、以及score frame字段说明
- logo qt添加_linux下如何给qt程序添加图标?
- python基础:序列(列表、元组、字符串)、函数、字典、集合
- IntelliJ IDEA常用快捷键——基于Eclipse
- 最详细的R-CNN论文笔记
- postman断言作用及怎么使用
- jsp怎么调用servlet_Servlet简述
- openwrt 程序C++ hello world的ipk软件包(三)
- 一文讲清微服务架构、分布式架构、微服务、SOA
- PPL文档——Excel制作的甘特图加上动态今日线
- 制作u盘winpe启动盘_U启大师U盘启动盘制作教程(装机版)
- Android jetpack DataBinding 与RecyclerView
- CSGO社区服搭建记录
- 什么是企业微信scrm系统?企业微信SCRM系统有什么功能?企业微信SCRM系统推荐。
- 八皇后问题——列出所有的解,可推至N皇后
- wps打开文件提示被锁定怎么办
- ros wiki learning
- 安卓木马demo_小demo 旋转木马
热门文章
- 近三十而立的我们,到底是先成家后立业还是先立业再成家?
- ftp协议c语言实现-linux平台
- shell脚本编程学习笔记6(xdl)——字符串截取命令
- 网易嵌入式面试 2015年8月19日晚网易电话面试
- 【手机远程连接电脑or服务器】【向日葵远程连接版】
- Android TabLayout修改指示器宽度方案汇总
- 鲜花静态HTML网页作业作品 大学生鲜花网页设计制作成品 简单DIV CSS布局网站
- 用计算机c语言输出你好,编写第一个C语言程序 - Hello World
- 前端学习CSS篇(三)
- 端到端无人驾驶文献学习:End-to-end Interpretable Neural Motion Planner