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_关联容器的更多相关文章

  1. cb22a_c++_标准模板库_STL_map_multimap红黑树(数据结构)关联容器

    cb22a_c++_标准模板库_STL_map_multimap红黑树(数据结构)关联容器map(映射,key不能重复,一对一对的,value_type(1, "one")),mu ...

  2. STL(标准模板库)理论基础,容器,迭代器,算法

    基本概念 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.现然主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间.   ...

  3. 8、泛型程序设计与c++标准模板库2、c++标准模板库中的容器

    顺序容器类以逻辑线性排列方式存储元素,在这些容器类型中的元素在逻辑上被认为是连续的存储空间中存储的.顺序容器可用于存储线性群体. 在关联容器类中,元素的存储和检索基于关键字和元素与其他元素之间的关系, ...

  4. C++_标准模板库STL概念介绍1-建立感性认知

    标准模板库的英文缩写是STL,即Standard Template Library. STL里面有什么呢? 它提供了一组表示容器.迭代器.函数对象和算法的模板. 容器是一个与数组类似的单元,可以存储若 ...

  5. C++_标准模板库STL概念介绍2-泛型编程

    有了之前使用STL的经验后,接下来讨论泛型编程及其底层的理念: 首先我们知道STL只是泛型编程的一种: 而面向对象的编程方式关注的是编程的数据方面: 而泛型编程关注的是算法: 但是,他们之间的一个重要 ...

  6. C++_标准模板库STL概念介绍5-其他库与总结

    C++还提供了其他一些类库,这些类库更加专用. 例如,头文件complex为复数提供了类模板complex,包含用于float.long和long double的具体化. 这个类提供了标准的复数运算以 ...

  7. C++_标准模板库STL概念介绍4-算法

    STL包含很多处理容器的非成员函数: sort() copy() find() random_shuffle() set_union() set_intersection() set_differen ...

  8. 8、泛型程序设计与c++标准模板库2.5容器适配器

    容器适配器是用来扩展7中基本容器的,是修改和调整其他类接口的类.他们不提供存放数据的实际数据结构的实现方法,而且容器适配器也不支持迭代器. 1.标准栈容器 使用STL中的标准栈为程序员提供了一层附加的 ...

  9. C++_标准模板库STL概念介绍3-函数对象

    函数对象也叫做函数符(functor). 函数符是可以以函数方式和( )结合使用的任意对象. 包括函数名,指向函数的指针,重载了()运算符的类对象. 可以这样定义一个类: class Linear { ...

随机推荐

  1. eatwhatApp开发实战(五)

    上次我们为eatwhat添加了了删除功能和dialog对话框的介绍,今天我们来使用SQLite进行本地数据存储. 首先,我们定义一个SQL辅助类ShopInfoOpenHelper继承SQLiteOp ...

  2. cypher语句摘要

    match(n) return n 返回所有的节点和关系,只要有就返回,对节点和关系的查找不做条件限制. match(n:Student) return n 返回所有的Student节点 创建节点:c ...

  3. AVIRIS 简介

    AVIRIS 是指 机载可见光近红外成像光谱(Airborne Visible InfraRed Imaging Spectrometer).是由美国NASA下属的喷气动力实验室(JPL)开发和维护的 ...

  4. PAT1033 旧键盘打字 (20分) (关于测试点4超时问题)

    1033 旧键盘打字 (20分)   旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 ...

  5. Shell编程案例:修改运维脚本输出效果

    1. 需求:每日运维检查脚本dailymonitor.sh显示对服务器测试结果,其中命令 zabbix_get -s 192.168.111.21 -p 10050 -k "net.tcp. ...

  6. jchdl - GSL实例:FullAdder(使用HalfAdder实现)

    https://mp.weixin.qq.com/s/5mcYAllizuxyr3QSNrotrw 全加器是能够计算低位进位的二进制加法电路.与半加器相比,全加器不只考虑本位计算结果是否有进位,也考虑 ...

  7. Java实现 蓝桥杯 算法训练 审美课

    算法训练 审美课 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 <审美的历程>课上有n位学生,帅老师展示了m幅画,其中有些是梵高的作品,另外的都出自五岁小朋友之手.老师 ...

  8. Java实现 LeetCode 617 合并二叉树(遍历树)

    617. 合并二叉树 给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠. 你需要将他们合并为一个新的二叉树.合并的规则是如果两个节点重叠,那么将他们的值相加作为节点 ...

  9. Java实现 LeetCode 365 水壶问题

    365. 水壶问题 有两个容量分别为 x升 和 y升 的水壶以及无限多的水.请判断能否通过使用这两个水壶,从而可以得到恰好 z升 的水? 如果可以,最后请用以上水壶中的一或两个来盛放取得的 z升 水. ...

  10. Java实现 LeetCode 352 将数据流变为多个不相交区间

    352. 将数据流变为多个不相交区间 给定一个非负整数的数据流输入 a1,a2,-,an,-,将到目前为止看到的数字总结为不相交的区间列表. 例如,假设数据流中的整数为 1,3,7,2,6,-,每次的 ...