vector,map
来源:互联网 发布:男科医院网络预约挂号 编辑:程序博客网 时间:2024/06/07 01:49
要使用vector必须包含头文件#include<vector>
定义一个vector有三种方法
vector<类型> 标示符
vector<类型> 标示符(最大容量)
vector<类型> 标示符(最大容量,初始值所以值)
类型可以是各种数据类型,对象也行
对一个vector赋值:
vector<int> vectortest;
//如果在定义时声明了最大容量,可以用和数组一样的方法,其实就相当于在定义时给分配了内存
vector<int> vectortest(5);
vectortest[0]=0;
//如果在定义vector是没有声明最大容量,那么只能用push_back(),就相当于是一个动态大小的数组
vector<int> vectortest;
vectortest.push_back(0);
当然也可以这样
vector<int> vectortest(5);
vectortest.push_back(0);
printf("%d",vectortest.size());
不过这样它的大小就是6了,因为会在原有的大小上追加大小
删除最上面的可以用pop_back(),每pop_back()一次vectortest.size()也会减1
删除指定位置用erase(),它的参数是iterator(迭代器),迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围。迭代器就如同一个指针;
这时比如我们要删除一个vector中的所有是0的元素
vector<int> vectortest;
vectortest.push_back(1);
vectortest.push_back(0);
vectortest.push_back(0);
vectortest.push_back(3);
vectortest.push_back(0);
vector<int>::iterator it=vectortest.begin();
while(it!=vectortest.end()){
if(*it==0){
it=vectortest.erase(it);
}else{
it++;
}
}
for(auto a:vectortest){
printf("%d ",a);
}
输出为1 3,这样我们就把0全部删了
map
使用时也要包含头文件#include<map>
用来存放键值
map<数据类型,数据类型>
比如我们定义一个map<int,std::string> testmap;
我们可以这样存入数据
testmap[1]="aaa"
testmap.insert(map<int,string>::value_type(1,"aaa"));
当我们要删除或读取其中数据时要先判断该键是否存在,如果输出一个不存在的键的值程序会中断
比如:
map<int,string> testmap;
testmap.insert(map<int,string>::value_type(1,"aaa"));
testmap.insert(map<int,string>::value_type(2,"bbb"));
testmap.insert(map<int,string>::value_type(3,"ccc"));
testmap.insert(map<int,string>::value_type(4,"ddd"));
map<int,string>::iterator it=testmap.find(3);//创建一个迭代器等于find返回的结果
if(it!=testmap.end()){//如果不等于end()则说明存在这个键
testmap.erase(it);//删除
}
全部输出测试一下
for(it=testmap.begin();it!=testmap.end;it++){
printf("%d,%s\n"it->first.c_str(),it->second.cstr());
}
1,aaa
2,bbb
4,ddd
- vector?map?
- map vector
- map vector
- vector+map
- vector,map
- map与vector
- STL:map, vector, list
- map set vector list
- vector/list/map
- vector/list/map
- STL vector list map
- 遍历map和vector
- ArrayList、LinkedList、 Vector、Map
- STL -- map--vector--排序
- vector和map
- vector , map , set
- C++ 打印Vector、map
- c++,vector,map
- 基于cropper.js封装vue在线图片裁剪组件
- 反射机制
- ktruncate用法详解
- Spring Cloud Eureka与Ribbon——服务发现与消费
- vue-cli 路由重定向
- vector,map
- 读书笔记 数据结构(c语言版)
- 历史的真相很“残酷”
- cmiss与nmiss函数的区别
- HDU 1875 畅通工程再续【最小生成树Kruskal】
- 5.定义一个可以接收三个数字的函数,函数体内实现三个数字的排序输出 →(javascript代返回值的函数的申明和调用)
- java中的注解
- 常用正则表达式
- java反射,类加载器以及配置文件的结合使用