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 { ...
随机推荐
- rfind()的使用
今天学了一个新函数 rfind 使用: str=123/456 str.rfind('/',1,6) 返回的是从1到6找最后一个/的位置
- JZOJ 4611. 【NOI2016模拟7.11】接水问题 (贪心+A*+可持久化线段树)
Description: https://gmoj.net/senior/#main/show/4611 题解: 先把A从大到小排序,最小的由排序不等式显然. 考虑类似第k短路的A*的做法. 定义状态 ...
- 来自AI的Tips——情景智能
来自AI的Tips--情景智能 上一次我们介绍了华为快服务智慧平台是什么,今天我们来侃一侃平台最有代表性的一个流量入口--情景智能(AI Tips). 首先情景智能在哪呢?大家可以拿出自己的华 ...
- eatwhatApp开发实战(二)
上期,我们做了个小app“eatwhat”,接下来每期都会为其添加新的功能.本期,我们为店铺增加添加店铺的功能. 还是先设置个布局: <RelativeLayout android:layout ...
- html5学习之路_004
HTML表单 表单用于获取不同类型的用户输入 常用表单标签 下面为一个简单的表单: <!DOCTYPE html> <html> <head lang="en& ...
- Java找零钱算法
买东西过程中,卖家经常需要找零钱.现用代码实现找零钱的方法,要求优先使用面额大的纸币,假设卖家有足够数量的各种面额的纸币. 下面给出的算法比较简单,也符合人的直觉:把找零不断地减掉小于它的最大面额的纸 ...
- CAD文件打印为PDF文档
标题: CAD文件打印为PDF文档 作者: 梦幻之心星 347369787@QQ.com 标签: [CAD, 打印, 转换] 目录: 软件 日期: 2019-5-28 目录 CAD文件打印为PDF文档 ...
- vue-cli4 + TS构建新项目
1. 如果你之前没有安装vue-cli,可以通过如下命令进行安装: npm install -g @vue/cli yarn global add @vue/cli 2. 创建vue项目 vue cr ...
- Rocket - diplomacy - BaseNode
https://mp.weixin.qq.com/s/eOgNLi_MJ8HJOpepGaaW8Q 简单介绍BaseNode的实现. 1. You cannot create a n ...
- Rocket - diplomacy - NodeImp
https://mp.weixin.qq.com/s/HgUpTCh0D94Uymj5qQk-ag 介绍NodeImp相关基础类的实现. 1. 类图 节点实现(NodeImp ...