set(集合):http://baike.baidu.com/link?url=cb68AB-3qfEK8RoaGHJFClb4ZiWpJfc32lPOLtaNUrdxntFC738zCZsCiUlfAVRLds2aeNkgYCYCe_wdVB2TIa

需要包括头文件<set>;

定义:

set<数据类型> 变量名;

Eg:

set<int> s;//定义了一个整型的集合s;

基本操作(红色标识为常用操作):

s.begin() 返回指向第一个元素的迭代器

s.clear() 清除所有元素

s. count() 返回某个值元素的个数

s.empty() 如果集合为空,返回true

s.end() 返回指向最后一个元素的下一个迭代器

s.equal_range() 返回集合中与给定值相等的上下限的两个迭代器

s.erase() 删除集合中的元素

s.find() 返回一个指向被查找到元素的迭代器//不太会用,据说为常用算法,下面代码解释中未提到该函数。

s.get_allocator() 返回集合的分配器

s.insert() 在集合中插入元素

s.lower_bound() 返回指向大于(或等于)某值的第一个元素的迭代器

s.key_comp() 返回一个用于元素间值比较的函数

s.max_size() 返回集合能容纳的元素的最大限值

s.rbegin() 返回指向集合中最后一个元素的反向迭代器

s.rend() 返回指向集合中第一个元素的反向迭代器

s.size() 集合中元素的数目

swap() 交换两个集合变量

s.upper_bound() 返回大于某个值元素的迭代器

s.value_comp() 返回一个用于比较元素间的值的函数

代码解释(为服务广大初学者,以后代码解释加汉语提示操作,不懂粘代码自己运行):

#include<set>
#include<cstdio>
#include<string>
#include<iostream>

using namespace std;

int main()
{
set<string> strset;//定义了一个为字符串型的集合strset;
strset.insert("a");//添加元素a;
strset.insert("b");//添加元素b;
strset.insert("c");//添加元素c;
strset.insert("d");//添加元素d;
strset.insert("a");//再添加元素a;
cout<<"集合基本操作:"<<endl;
cout<<"集合是否为空:";
if (strset.empty()) printf("YES\n");
else printf("NO\n");
set<string>::iterator ator=strset.begin();
cout<<"集合遍历:"<<endl;
for(;ator!=strset.end();ator++)
cout<<*ator<<endl;
cout<<"集合中a的个数:" ;
cout<<strset.count("a")<<endl;
cout<<"集合中z的个数:" ;
cout<<strset.count("z")<<endl;
string a;
cout<<"集合判重操作:"<<endl;
cin>>a;
if (strset.count(a)==1) printf("chong\n");//判断元素是否重。
else printf("buchong\n");
cout<<"集合去重操作:"<<endl;
cin>>a;
if (strset.count(a)==1) strset.erase(a);//将重元素去除。
ator=strset.begin();
cout<<"集合遍历:"<<endl;
for(;ator!=strset.end();ator++)
cout<<*ator<<endl;
cout<<"集合中元素个数:" ;
cout<<strset.size()<<endl;
cout<<"集合清0操作:"<<endl;
strset.clear();//清0;
cout<<"集合是否为空:";
if (strset.empty()/*判空*/) printf("YES\n");
else printf("NO\n");
return 0;
}

C++之路起航——标准模板库(set)的更多相关文章

  1. C++之路起航——标准模板库(vector)

    vector(动态数组或向量):动态分配内存空间的线性储存结构. 需要包括头文件<vector> 定义: vector<数据类型> 变量名: Eg: vector<int ...

  2. C++之路起航——标准模板库(queue)

    queue: FIFO队列:先进先出队列. 优先队列:对队列中的元素按优先级的大小输出. 定义: FIFO队列: queue<数据类性>变量名. 优先队列:priority_queue&l ...

  3. C++之路起航——标准模板库(deque)

    deque(双端队列):http://baike.baidu.com/link?url=JTvA2cuLubptctHZwFxswvlZvxNdFOxmifsYCGLj5IZF-Tj4rbWLv8Jn ...

  4. C++之路起航——标准模板库(list)

    list(链表):http://baike.baidu.com/link?url=gkVdBlHEzy6ssrgT5Iy2wze4jl37ka1G45TRpUHrQSYFZQg2HimtUCePV0t ...

  5. [转载]C++之路起航——标准模板库(deque)

    转自:https://www.cnblogs.com/grhyxzc/p/5074061.html deque(双端队列):http://baike.baidu.com/link?url=JTvA2c ...

  6. 标准模板库(STL)学习指南之sort排序

    对于程序员来说,数据结构是必修的一门课.从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来.幸运的是这些理论都已经比较成熟,算法也基本固定下来,不需要你再去花费心思 ...

  7. STL标准模板库(简介)

    标准模板库(STL,Standard Template Library)是C++标准库的重要组成部分,包含了诸多在计算机科学领域里所常见的基本数据结构和基本算法,为广大C++程序员提供了一个可扩展的应 ...

  8. 【转】C++标准库和标准模板库

    C++强大的功能来源于其丰富的类库及库函数资源.C++标准库的内容总共在50个标准头文件中定义.在C++开发中,要尽可能地利用标准库完成.这样做的直接好处包括:(1)成本:已经作为标准提供,何苦再花费 ...

  9. STL标准模板库介绍

    1. STL介绍 标准模板库STL是当今每个从事C++编程的人需要掌握的技术,所有很有必要总结下 本文将介绍STL并探讨它的三个主要概念:容器.迭代器.算法. STL的最大特点就是: 数据结构和算法的 ...

随机推荐

  1. Linux core 文件介绍

    Linux core 文件介绍 http://www.cnblogs.com/dongzhiquan/archive/2012/01/20/2328355.html 1. core文件的简单介绍在一个 ...

  2. hitTest:WithEvent 和Responder Chain

    这个方法是找到那个View被touch,当找到后就成为响应链的第一个了,如果他不能处理这个Event,那么就找nextResponder 直至application 如果不能处理,那就会丢弃掉. ht ...

  3. 执行动态sql返回参数

    ref: https://support.microsoft.com/en-us/kb/262499 ) ) DECLARE @IntVariable INT ) SET @SQLString = N ...

  4. 网页上的表格数据table

    格式: <table> <tr> <th> </th> </tr> <tr> <td> </td> &l ...

  5. How to read the HTML DTD

    Contents How to read the HTML DTD 1. DTD Comments 2. Parameter Entity definitions 3. Element declara ...

  6. 详解MySQL---DDL语句、DML语句与DCL语句

    背景:近几年,开源数据库逐渐流行起来.由于具有免费使用.配置简单.稳定性好.性能优良等优点,开源数据库在中低端应用上占据了很大的市场份额,而 MySQL 正是开源数据库中的杰出代表.MySQL 数据库 ...

  7. linux web服务器静态资源的处理 unison+inotify双向同步

    linux web服务器静态资源的处理 unison+inotify双向同步 http://monkeyzhu.blog.51cto.com/5764358/1324391 简介 unison可以使两 ...

  8. EF Code First教程-01 创建一个简单的Code First程序

    1 从nuget中搜索并添加EF 2 在app.config或web.config中添加数据库连接 <connectionStrings> <add name="conns ...

  9. Android --LoginActivity模板登录

    Android Studio使用自带LoginActivity模板,制作登录界面 登录界面功能: 1.记住表单账户密码,并自动登录 //获得sp实例对象 sp = this.getSharedPref ...

  10. iOS 对UIButton的imageView和titleLabel进行重新布局

    #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @pr ...