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. hibernate多SessionFactory配置

    <bean id="aDataSource" class="org.apache.commons.dbcp.BasicDataSource" destro ...

  2. Nginx+Django+Uwsgi+php

    在FreeBSD结合Nginx和FastCGI简单配置Django和PHP  http://blog.chinaunix.net/uid-11131943-id-3031767.html Nginx+ ...

  3. Delphi xe7 FireMonkey / Mobile (Android, iOS)生成 QR Code完整实例

    这个实例在windows.OS X.IOS和Android等平台运行正常.本文参考这个网站提供的方法:http://zarko-gajic.iz.hr/firemonkey-mobile-androi ...

  4. OO之美3

    面向对象和基于对象 基于对象:所以基于对象,就是一种对数据类型的抽象,封装一个结构包含了数据和函数,然后以对象为目标进行操作.构建的基础是对象,但是操作对象并不体现出面向对象的继承性,也就是基于对象局 ...

  5. 不允许修改SQLserver2008r2表中字段的属性问题

    SQLserver2008r2修改表中字段的属性时弹出 点击工具->选项,取消阻止保存要求重新创建表的更改

  6. [转]android自动弹出软键盘(输入键盘)

    转自:http://www.devdiv.com/home.php?mod=space&uid=65729&do=blog&id=11847 很多应用中对于一个界面比如进入搜索 ...

  7. gulp教程

    1. http://www.tuicool.com/articles/FJVNZf 2.http://www.ydcss.com/archives/18 3.手动创建package.json: 如:c ...

  8. 执行shell脚本的几种方法及区别

    执行shell脚本的几种方法及区别 http://blog.csdn.net/lanxinju/article/details/6032368 (认真看) 注意:如果涉及到脚本之间的调用一定要用 . ...

  9. A股回归牛市?

    A股回归牛市? 国际知名投行摩根士丹利(Morgan Stanley)预计,中国股市将恢复牛市大涨行情. 该行预计上证综指明年底将报4,400点,较目前的3,241点水平涨36%.预计每股盈余(EPS ...

  10. 详解OpenGL中的各种变换(投影变换,模型变换,视图变换)(完)——法线变换

    前面两节内容已经说完了所有的三种变换.也就是说我们现在程序里面既不需要glLookAt(),也不需要gluPerspective(),这些矩阵我们都可以自己写.然后,再用glMultMatrix()来 ...