java vector pair_STL: list ,set ,pair.map的使用
/**
* K1:---------------------list的相关API------------------------------
*
* list lstT;//list采用采用模板类实现,对象的默认构造形式:
list(beg,end);//构造函数将[beg, end)区间中的元素拷贝给本身。
list(n,elem);//构造函数将n个elem拷贝给本身。
list(const list &lst);//拷贝构造函数。
3.6.4.2 list数据元素插入和删除操作
push_back(elem);//在容器尾部加入一个元素
pop_back();//删除容器中最后一个元素
push_front(elem);//在容器开头插入一个元素
pop_front();//从容器开头移除第一个元素
insert(pos,elem);//在pos位置插elem元素的拷贝,返回新数据的位置。
insert(pos,n,elem);//在pos位置插入n个elem数据,无返回值。
insert(pos,beg,end);//在pos位置插入[beg,end)区间的数据,无返回值。
clear();//移除容器的所有数据
erase(beg,end);//删除[beg,end)区间的数据,返回下一个数据的位置。
erase(pos);//删除pos位置的数据,返回下一个数据的位置。
remove(elem);//删除容器中所有与elem值匹配的元素。
3.6.4.3 list大小操作
size();//返回容器中元素的个数
empty();//判断容器是否为空
resize(num);//重新指定容器的长度为num,
若容器变长,则以默认值填充新位置。
如果容器变短,则末尾超出容器长度的元素被删除。
resize(num, elem);//重新指定容器的长度为num,
若容器变长,则以elem值填充新位置。
如果容器变短,则末尾超出容器长度的元素被删除。
3.6.4.4 list赋值操作
assign(beg, end);//将[beg, end)区间中的数据拷贝赋值给本身。
assign(n, elem);//将n个elem拷贝赋值给本身。
list& operator=(const list &lst);//重载等号操作符
swap(lst);//将lst与本身的元素互换。
3.6.4.5 list数据的存取
front();//返回第一个元素。
back();//返回最后一个元素。
3.6.4.6 list反转排序
reverse();//反转链表,比如lst包含1,3,5元素,运行此方法后,lst就包含5,3,1元素。
sort(); //list排序
*
*
*/
/**
* K2:----------------list的细节----------------------------
* 1.sort排序,需要传入二元比较函数.或者仿函数.
* 注意点:JAVA中的compare返回的是int,这里返回的是bool.
*
* 2.remove 自定义结构体,需要重写operator== 的二元函数.
*
*/
/**
* K3:-------------------set的使用--------------------------
*
* 1.自定义类型的class,需要传入仿函数的比较器.bool operator()(const T1&,consrT2&),public修饰.
* 或者重写类内部的< 重载符.
*
* 2.移除自定义的类,需要重写operator==的二元函数.
*
*
*
* set构造函数
set st;//set默认构造函数:
mulitset mst; //multiset默认构造函数:
set(const set &st);//拷贝构造函数
3.7.2.2 set赋值操作
set& operator=(const set &st);//重载等号操作符
swap(st);//交换两个集合容器
3.7.2.3 set大小操作
size();//返回容器中元素的数目
empty();//判断容器是否为空
3.7.2.4 set插入和删除操作
insert(elem);//在容器中插入元素。
clear();//清除所有元素
erase(pos);//删除pos迭代器所指的元素,返回下一个元素的迭代器。
erase(beg, end);//删除区间[beg,end)的所有元素 ,返回下一个元素的迭代器。
erase(elem);//删除容器中值为elem的元素。
*
*
*/
/**
*
* K4:----------------迭代器补充--------------------
* vector::iterator pStart = v.begin(); //vector 容器提供了 begin()方法 返回指向第一个元素的迭代器
vector::iterator pEnd = v.end(); //vector 容器提供了 end()方法 返回指向最后一个元素下一个位置的迭代器
* 并不是最后一个,而是最后一个的下一个.......
*
*
*/
/**
*
* K5:------------- == < 仿函数,谓词的总结:------------
* **都要注意加const修饰**
* bool operator==(const T &t)const 是用于remove的时候调用.
* bool operator
* 仿函数 也是用于比较排序的时候调用. bool operator()(const T&t1,const T &t2)const ;
*
* 这个无法加const
* 或者写一个全局函数. bool compare(const T&t1,const T &t2)
*
* 1、函数对象通常不定义构造函数和析构函数,所以在构造和析构时不会发生任何问题,避免了函数调用的运行时问题。
* 2、函数对象超出普通函数的概念,函数对象可以有自己的状态
* 3、函数对象可内联编译,性能好。用函数指针几乎不可能
* 4、模版函数对象使函数对象具有通用性,这也是它的优势之一
*
*
*/
//仿函数
class SetCompare {
public:
bool operator()(const SetPerson &p1, const SetPerson &p2) const {
return p1.age > p2.age;
}
};
//重载< 用于排序
class MapPerson {
public:
int age;
bool operator
return this->age < p.age;
}
};
//重载== 用于比较删除
class ThreePerson {
public:
int age;
ThreePerson() {
}
ThreePerson(int age) {
this->age = age;
}
bool operator==(const ThreePerson &person) const {
return person.age == this->age;
}
~ThreePerson() {
cout << "destroy------------" << endl;
}
};
//普通函数
bool comparePerson(const ThreePerson &p1, const ThreePerson &p2) {
return p2.age > p1.age;
}
//map的使用
void printMap(map map1) {
for (auto it = map1.begin(); it != map1.end(); ++it) {
cout << "map's age: " << it->second << endl;
}
}
void useThreeState2() {
map map1;
auto var1 = map1.insert(make_pair(MapPerson(), "July"));
auto var2 = map1.insert(make_pair(MapPerson(), "Lucy"));
map1.insert(make_pair(MapPerson(), "LiLei"));
printMap(map1);
cout<
cout<
}
java vector pair_STL: list ,set ,pair.map的使用相关推荐
- java vector pair_C++ vector中使用pair 及 pair的基本用法总结(转)
pair的基本用法总结 1.pair的应用 pair是将2个数据组合成一组数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存.另一个应用是,当一个函数 ...
- java中list,set,map集合的区别,及面试要点
Map集合:链接: Map集合的五种遍历方式及Treemap方法 Set集合:链接: Java中遍历Set集合的三种方法 TreeSet集合:链接: Java深入了解TreeSet,和迭代器遍历方法 ...
- C++:vector容器中使用pair该如何访问成员
(显然,vector 的索引从 0 开始,这和普通数组一样.通过使用索引,总是可以访问到 vector 容器中现有的元素.) 如果是简单的访问vector里边的成员的话,是这样的: #include ...
- java使用集合存储过程_详解java调用存储过程并封装成map
详解java调用存储过程并封装成map 发布于 2020-5-1| 复制链接 摘记: 详解java调用存储过程并封装成map 本文代码中注释写的比较清楚不在单独说明,希望能帮助到大 ...
- java 三种将list转换为map的方法详解
这篇文章主要介绍了java 三种将list转换为map的方法详解的相关资料,需要的朋友可以参考下 java 三种将list转换为map的方法详解 在本文中,介绍三种将list转换为map的方法: 1) ...
- Java Vector API的使用测试
Java Vector API的使用测试 Vector API Vector API 是Java18开始引入的一个项目(JEP 417),通过引入该API来表达向量运算,该计算在运行时可靠地编译为 ...
- java进阶开发-----Set集合、Map集合(接java集合)
(一).Set系列集合 Set系列集合特点 无序:存取顺序不一致 不重复:可以去除重复 无索引:没有带索引的方法,所以不能使用普通for循环遍历,也不能通过索引来获取元素. Set集合实现类特点 Ha ...
- Java进阶,Set集合,Map集合
Java进阶,Set集合,Map集合 一.Set系列集合 1.Set系列集系概述 Set系列集合特点 无序:存取顺序不一致 不重复:可以去除重复 无索引:没有带索引的方法,所以不能使用普通for循环遍 ...
- Java 读取 JSON 文件转成 Map 对象
Java 读取 JSON 文件转成 Map 对象 应用场景 待读取的外部 JSON 文件 Java 代码 读取结果 Gson 应用场景 Jar 包或 War 包引用一个外部文件作为项目运行的配置文件 ...
- java 不区分KEY大小写的MAP
java 不区分KEY大小写的MAP 2015-01-15 14:16:54| 分类: 默认分类|举报|字号 订阅 下载LOFTER 我的照片书 | 关键字:忽略key大小写的map 有时候我们会 ...
最新文章
- Spring Boot 2.X 实现文件上传(三)
- 【LeetCode-704 | 二分查找】
- Python Django CBV下的通用视图函数
- 机器学习算法精讲20篇(一)-k-means聚类算法应用案例(附示例代码)
- mysql 社区版 innodb_MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测)
- C#锐利体验-第八讲 索引器与操作符重载(转)
- java 不编译咋办_java – 为什么JVM不编译整个程序,而不是逐个编译?
- 山羊与汽车游戏的实验算法
- [转贴] 从零开始学C++之异常(二):程序错误、异常(语法、抛出、捕获、传播)、栈展开...
- 教你轻松截获 Selenium 中的 Ajax 数据
- Delphi各个版本的官方下载地址,还在等机会
- BLUES吉他学习笔记005 bluesrv[9]
- 初中数学503个必考知识点_高考数学必考知识点高中数学重点知识归纳
- matlab相机标定工具箱讲解,matlab 相机标定工具箱
- 作用域链与原型链的区别
- S@Kura的PHP进阶之路(五)
- Activity界面的加载和绘制
- 很有哲理的句子,每天都值得看一遍
- 刷脸时代:勿信谣言,告诉你真实的刷脸支付系统
- ROS自定义消息类型,编译无法生成 msg/srv 文件产生的头文件