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. c语言作业

  2. 算导Ch34. NP Complete

    1.图灵停机问题:无论在多长时间内都无法被任何一台计算机解决 问题描述:问题为H,H的输入数据为P(P是一段程序(程序也是一串字符串数据)),判定P在输入w下是否能够最终停止 H(P(w))=0 若P ...

  3. JS中注意原型链的“指向”

    昨天压缩Js文件时发现了项目中的一个prototype的问题代码如下所示: 1. <script> var XXX = function(){ }; var x1 = new XXX(); ...

  4. 转:[ASP.NET]重構之路系列v4 – 簡單使用interface之『你也會IoC』

    前言 上次v3版本,我們將Entity, Service, Dao, Utility都放到了類別庫裡面,讓我們可以輕鬆的在不同專案中用同一份組件.雖然文章沒有獲得太多的讚賞,不過相信那一定是太多人會這 ...

  5. 用facebook账号登陆到你的Magento网店

    Inchoo提供magento和facebook连接的扩展,可以到http://inchoo.net/ecommerce/magento/facebook-connect-magento-extens ...

  6. iOS prototype Cells

    在storyboard这方面用到的很少,cell也没有用到.上个周五,汤老师快下班的时候说:你看,我的界面已经搭建完成了.而我这边还没有头绪.现在想把需求模拟一下,结果流程没有弄完,自己在这搭起界面来 ...

  7. Android Annotations 注解例子

    1.AndroidAnnotations官网: http://androidannotations.org/ (也许你需要FQ) 2.eclipse中使用androidannotations的配置方法 ...

  8. JS-面向对象-封装

    --参考文献: --http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_encapsulation.html --js面 ...

  9. http://blog.csdn.net/clementad/article/details/47403185

    http://blog.csdn.net/clementad/article/details/47403185

  10. 给Windows机器创建软连接

    给Windows机器创建软连接 http://blog.csdn.net/w6611415/article/details/32084677