cb23a_c++_标准模板库STL_set_multiset_关联容器
cb23a_c++_标准模板库STL_set_multiset_关联容器
set(集)数据不能重复、multiset(多集)可以重复。操作数据速度快,数据自动排序。
红黑树(数据结构)红黑树-二叉树
基本操作
insert: 插入时比vector稍慢
count和find
erase:
注意:不能通过find进行修改(因为它会自动排序,位置就不确定),顺序容器vector可以修改。
set只能查找,不能修改。vector可以。
set可以先删除数据,再插入数据。
welcome to disscuss
txwtech@163.com
vs2017 error C2760: 语法错误: 意外的令牌“标识符”,预期的令牌为“;”
打开项目工程----> 属性 ---> c/c++ --> 语言 --> 符合模式 修改成否即可
*/
/*cb23a_c++_标准模板库STL_set_multiset_关联容器 set(集)数据不能重复、multiset(多集)可以重复。操作数据速度快,数据自动排序。
红黑树(数据结构)红黑树-二叉树
基本操作
insert: 插入时比vector稍慢
count和find
erase:
注意:不能通过find进行修改(因为它会自动排序,位置就不确定),顺序容器vector可以修改。
set只能查找,不能修改。vector可以。
welcome to disscuss
txwtech@163.com vs2017 error C2760: 语法错误: 意外的令牌“标识符”,预期的令牌为“;”
打开项目工程----> 属性 ---> c/c++ --> 语言 --> 符合模式 修改成否即可
*/
#include <iostream>
#include <set>
#include <string> using namespace std;
template<typename Container> //使用模板函数,任何容器都可以显示
void PrintContent(const Container &c); int main()
{
set<int> a;//是一个泛型
multiset<int> ma;
a.insert(); //插入数据后,自动排序
a.insert(-);
a.insert();
a.insert();//重复数据自动过滤掉
cout << "显示set里面的数据: " << endl;
//set<int>::const_iterator i = a.begin();
/*while (i != a.end())
{
cout << *i << endl;
++i;
}*/
PrintContent(a);
ma.insert(a.begin(), a.end());//a的数据全部插入到ma里面,multiset可以重复
ma.insert();
cout << "multiset里面有 " << ma.count() << "个3000" << endl;;//统计ma里面3000的个数 cout << "显示ma里面的数据" << endl; //multiset<int>::const_iterator i2 = ma.begin();
/*while (i2 != ma.end())
{
cout << *i2 << endl;
++i2;
}*/
PrintContent(ma);
return ;
}
template<typename Container>
void PrintContent(const Container & c)
{
Container::const_iterator i = c.begin();
while (i != c.end())
{
cout << *i << endl;
++i;
}
}
/*cb23b
SETINT::iterator i_found = a.find(-1);//set只能查找,不能修改。vector可以。因为set会自动排序。
cout << "如果要修改数据,先删除数据,再插入数据" << endl;
*/
#include <iostream>
#include <set> using namespace std;
typedef set<int> SETINT;//定义一个别名 int main()
{
//set<int> a;
SETINT a;////定义一个别名
a.insert();
a.insert();
a.insert(-);
a.insert(); SETINT::const_iterator i;
for (i = a.begin(); i != a.end(); ++i)
cout << *i << endl;
a.find(-);//返回的是迭代器
SETINT::iterator i_found = a.find(-);//set只能查找,不能修改。vector可以。因为set会自动排序。
if (i_found != a.end())
cout << "找到了: " <<*i_found<< endl;
else
{
cout << "没有找到" << endl;//指针指向未知。显示*i_found会报错。
} cout << "如果要修改数据,先删除数据,再插入数据" << endl;
return ;
}
/* */
#include <iostream>
#include <set> using namespace std; typedef multiset<int> MSETINT; int main()
{
MSETINT a;
a.insert();
a.insert();
a.insert();
a.insert(-);
a.insert();
MSETINT::const_iterator i;
cout << "multiset里有:" << a.size() << "个数据" << endl;
cout << "显示每个数据:" << endl;
for (i = a.begin(); i != a.end(); ++i)
{
cout << *i << endl;
}
cout << "要删除的数据是:" << endl;
int nNumberToErase = ;
cin >> nNumberToErase;
a.erase(nNumberToErase); //删除78时,两个78都删除
cout << "multiset里现有:" << a.size() << "个数据" << endl;
cout << "删除后每个数据:" << endl;
for (i = a.begin(); i != a.end(); ++i)
{
cout << *i << endl;
} a.clear();//删除全部数据、
return ;
}
cb23a_c++_标准模板库STL_set_multiset_关联容器的更多相关文章
- cb22a_c++_标准模板库_STL_map_multimap红黑树(数据结构)关联容器
cb22a_c++_标准模板库_STL_map_multimap红黑树(数据结构)关联容器map(映射,key不能重复,一对一对的,value_type(1, "one")),mu ...
- STL(标准模板库)理论基础,容器,迭代器,算法
基本概念 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.现然主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间. ...
- 8、泛型程序设计与c++标准模板库2、c++标准模板库中的容器
顺序容器类以逻辑线性排列方式存储元素,在这些容器类型中的元素在逻辑上被认为是连续的存储空间中存储的.顺序容器可用于存储线性群体. 在关联容器类中,元素的存储和检索基于关键字和元素与其他元素之间的关系, ...
- C++_标准模板库STL概念介绍1-建立感性认知
标准模板库的英文缩写是STL,即Standard Template Library. STL里面有什么呢? 它提供了一组表示容器.迭代器.函数对象和算法的模板. 容器是一个与数组类似的单元,可以存储若 ...
- C++_标准模板库STL概念介绍2-泛型编程
有了之前使用STL的经验后,接下来讨论泛型编程及其底层的理念: 首先我们知道STL只是泛型编程的一种: 而面向对象的编程方式关注的是编程的数据方面: 而泛型编程关注的是算法: 但是,他们之间的一个重要 ...
- C++_标准模板库STL概念介绍5-其他库与总结
C++还提供了其他一些类库,这些类库更加专用. 例如,头文件complex为复数提供了类模板complex,包含用于float.long和long double的具体化. 这个类提供了标准的复数运算以 ...
- C++_标准模板库STL概念介绍4-算法
STL包含很多处理容器的非成员函数: sort() copy() find() random_shuffle() set_union() set_intersection() set_differen ...
- 8、泛型程序设计与c++标准模板库2.5容器适配器
容器适配器是用来扩展7中基本容器的,是修改和调整其他类接口的类.他们不提供存放数据的实际数据结构的实现方法,而且容器适配器也不支持迭代器. 1.标准栈容器 使用STL中的标准栈为程序员提供了一层附加的 ...
- C++_标准模板库STL概念介绍3-函数对象
函数对象也叫做函数符(functor). 函数符是可以以函数方式和( )结合使用的任意对象. 包括函数名,指向函数的指针,重载了()运算符的类对象. 可以这样定义一个类: class Linear { ...
随机推荐
- ajax 请求PHP返回json格式的处理
php返回代码格式 public function json(){ if (request()->isAjax()){ $data = [ 'code'=>'1', 'msg'=>' ...
- JNPF低代码开发框架代码生成器设计
1.代码生成器目录下有通用开发模板.单表开发模板.多表开发模板.流程表单模板.移动开发模板等: ①代码生成器录下通用开发模板页面,有搜索.上步.下步.下载代码功能操作: ②输入查询条件表名关键字进行搜 ...
- centos安装以及网络配置
Linux安装 1.Linux安装完成后 第一个问题就是网络不通的问题 ,问题图片如下: 解决办法: 三种网络模式: 桥接模式:虚拟机和宿主机是兄弟关系,统一由宿主机连接的路由器分发ip NAT模式: ...
- NodeJS——大汇总(一)(只需要使用这些东西,就能处理80%以上业务需求,全网最全node解决方案,吐血整理)
一.前言 本文目标 本文是博主总结了之前的自己在做的很多个项目的一些知识点,当然我在这里不会过多的讲解业务的流程,而是建立一个小demon,旨在帮助大家去更加高效 更加便捷的生成自己的node后台接口 ...
- Oracle 利用PLSQL一分钟将表结构(PROJ),从A库移植到B库,一分钟将A库中表数据移植到B库中!!!
导读(苦恼) 做多个项目的时候,可能会有这样的需求,需要把A项目中的某些功能移植到B项目上:移植途中,牵扯到顺便把表也要一块移植过去,若表字段较少,那还好,可能耗费10分钟就搞完了,万一碰上几十个字段 ...
- spring设计模式之applicationContext.getBean("beanName")思想
1.背景 在实际开发中我们会经常遇到不同的业务类型对应不同的业务处理,而这个业务类型又是经常变动的; 比如说,我们在做支付业务的时候,可能刚开始需要实现支付宝支付和微信支付,那么代码逻辑可能如下 /* ...
- [Unity2d系列教程] 002.引用外部DLL - C
上一篇我们学习了Unity调用C#生成的外部DLL,但是有时候我们需要访问底层,不能不适用C生成的DLL.下面就让我们一起学习下,C如何生成. 1.创建一个C的控制台程序 2.点击确定->点击下 ...
- [Axure教程]0001.新手入门基础
Axure RP是一个专业的快速原型设计工具.Axure(发音:Ack-sure),代表美国Axure公司:RP则是Rapid Prototyping(快速原型)的缩写.Axure RP已被一些大公司 ...
- Chisel3 - Tutorial - Adder
https://mp.weixin.qq.com/s/SEcVjGRL1YloGlEPSoHr3A 位数为参数的加法器.通过FullAdder级联实现. 参考链接: https://githu ...
- Java实现 LeetCode 647 回文子串(暴力)
647. 回文子串 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串. 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串. 示例 1: 输入: "a ...