STL - set【集合】

C++ STL 集合set 本文主要简述集合的原理和实现,便于快速学习和查阅。 集合的原理 set集合容器实现了红黑树(Red-Black Tree)的平衡二叉检索树的数据结构,在插入元素时,它会自动调整二叉树的排列,把该元素放到适当的位置,以确保每个子树根节点的键值大于左子树所有节点的键值,而小于右子树所有节点的键值。 另外,还得确保根节点左子树的高度与右子树的高度相等,这样,二叉树的高度最小,从而检索速度最快。 ... 阅读详情

参考:http://www.cplusplus.com/reference/set/set/

一、set 是按特定顺序存储唯一元素的容器

实现是一种非常高效的平衡检索二叉树:红黑树(Red-Black Tree)。

二、set 的特性

1、set中的元素都是排好序的(与lower_bound()等结合使用能起到找前驱、后继的作用)

2、set集合中没有重复的元素(常常用于去重)

三、set 的成员函数

begin()返回指向第一个元素的迭代器
end()返回指向最后一个元素的迭代器

 

 

 1 // set::begin/end
 2 #include <iostream>
 3 #include <set>
 4 
 5 int main ()
 6 {
 7   int myints[] = {75,23,65,42,13};
 8   std::set<int> myset (myints,myints+5);
 9 
10   std::cout << "myset contains:";
11   for (std::set<int>::iterator it=myset.begin(); it!=myset.end(); ++it)
12     std::cout << ' ' << *it;
13 
14   std::cout << '\n';
15 
16   return 0;
17 }
View Code
empty ()如果集合为空,返回true
size ()集合中元素的数目
max_size()返回集合能容纳的元素的最大限值

 

 

 

 1 // set::empty
 2 #include <iostream>
 3 #include <set>
 4 
 5 int main ()
 6 {
 7   std::set<int> myset;
 8 
 9   myset.insert(20);
10   myset.insert(30);
11   myset.insert(10);
12 
13   std::cout << "myset contains:";
14   while (!myset.empty())
15   {
16      std::cout << ' ' << *myset.begin();
17      myset.erase(myset.begin());
18   }
19   std::cout << '\n';
20 
21   return 0;
22 }
23 
24 
25 // set::size
26 #include <iostream>
27 #include <set>
28 
29 int main ()
30 {
31   std::set<int> myints;
32   std::cout << "0. size: " << myints.size() << '\n';
33 
34   for (int i=0; i<10; ++i) myints.insert(i);
35   std::cout << "1. size: " << myints.size() << '\n';
36 
37   myints.insert (100);
38   std::cout << "2. size: " << myints.size() << '\n';
39 
40   myints.erase(5);
41   std::cout << "3. size: " << myints.size() << '\n';
42 
43   return 0;
44 }
45 
46 // set::max_size
47 #include <iostream>
48 #include <set>
49 
50 int main ()
51 {
52   int i;
53   std::set<int> myset;
54 
55   if (myset.max_size()>1000)
56   {
57     for (i=0; i<1000; i++) myset.insert(i);
58     std::cout << "The set contains 1000 elements.\n";
59   }
60   else std::cout << "The set could not hold 1000 elements.\n";
61 
62   return 0;
63 }
View Code
insert()在集合中插入元素
erase()删除集合中的元素
swap()交换两个集合变量
clear()清除所有元素

 

 

 

 

  1 // set::insert (C++98)
  2 #include <iostream>
  3 #include <set>
  4 
  5 int main ()
  6 {
  7   std::set<int> myset;
  8   std::set<int>::iterator it;
  9   std::pair<std::set<int>::iterator,bool> ret;
 10 
 11   // set some initial values:
 12   for (int i=1; i<=5; ++i) myset.insert(i*10);    // set: 10 20 30 40 50
 13 
 14   ret = myset.insert(20);               // no new element inserted
 15 
 16   if (ret.second==false) it=ret.first;  // "it" now points to element 20
 17 
 18   myset.insert (it,25);                 // max efficiency inserting
 19   myset.insert (it,24);                 // max efficiency inserting
 20   myset.insert (it,26);                 // no max efficiency inserting
 21 
 22   int myints[]= {5,10,15};              // 10 already in set, not inserted
 23   myset.insert (myints,myints+3);
 24 
 25   std::cout << "myset contains:";
 26   for (it=myset.begin(); it!=myset.end(); ++it)
 27     std::cout << ' ' << *it;
 28   std::cout << '\n';
 29 
 30   return 0;
 31 }
 32 
 33 
 34 // erasing from set
 35 #include <iostream>
 36 #include <set>
 37 
 38 int main ()
 39 {
 40   std::set<int> myset;
 41   std::set<int>::iterator it;
 42 
 43   // insert some values:
 44   for (int i=1; i<10; i++) myset.insert(i*10);  // 10 20 30 40 50 60 70 80 90
 45 
 46   it = myset.begin();
 47   ++it;                                         // "it" points now to 20
 48 
 49   myset.erase (it);
 50 
 51   myset.erase (40);
 52 
 53   it = myset.find (60);
 54   myset.erase (it, myset.end());
 55 
 56   std::cout << "myset contains:";
 57   for (it=myset.begin(); it!=myset.end(); ++it)
 58     std::cout << ' ' << *it;
 59   std::cout << '\n';
 60 
 61   return 0;
 62 }
 63 
 64 
 65 // swap sets
 66 #include <iostream>
 67 #include <set>
 68 
 69 main ()
 70 {
 71   int myints[]={12,75,10,32,20,25};
 72   std::set<int> first (myints,myints+3);     // 10,12,75
 73   std::set<int> second (myints+3,myints+6);  // 20,25,32
 74 
 75   first.swap(second);
 76 
 77   std::cout << "first contains:";
 78   for (std::set<int>::iterator it=first.begin(); it!=first.end(); ++it)
 79     std::cout << ' ' << *it;
 80   std::cout << '\n';
 81 
 82   std::cout << "second contains:";
 83   for (std::set<int>::iterator it=second.begin(); it!=second.end(); ++it)
 84     std::cout << ' ' << *it;
 85   std::cout << '\n';
 86 
 87   return 0;
 88 }
 89 
 90 
 91 // set::clear
 92 #include <iostream>
 93 #include <set>
 94 
 95 int main ()
 96 {
 97   std::set<int> myset;
 98 
 99   myset.insert (100);
100   myset.insert (200);
101   myset.insert (300);
102 
103   std::cout << "myset contains:";
104   for (std::set<int>::iterator it=myset.begin(); it!=myset.end(); ++it)
105     std::cout << ' ' << *it;
106   std::cout << '\n';
107 
108   myset.clear();
109   myset.insert (1101);
110   myset.insert (2202);
111 
112   std::cout << "myset contains:";
113   for (std::set<int>::iterator it=myset.begin(); it!=myset.end(); ++it)
114     std::cout << ' ' << *it;
115   std::cout << '\n';
116 
117   return 0;
118 }
View Code
find()返回一个指向被查找到元素的迭代器
count()返回某个值元素的个数
lower_bound()返回指向大于(或等于)某值的第一个元素的迭代器
upper_bound()返回大于某个值元素的迭代器

 

 

 

 

 

 1 // set::find
 2 #include <iostream>
 3 #include <set>
 4 
 5 int main ()
 6 {
 7   std::set<int> myset;
 8   std::set<int>::iterator it;
 9 
10   // set some initial values:
11   for (int i=1; i<=5; i++) myset.insert(i*10);    // set: 10 20 30 40 50
12 
13   it=myset.find(20);
14   myset.erase (it);
15   myset.erase (myset.find(40));
16 
17   std::cout << "myset contains:";
18   for (it=myset.begin(); it!=myset.end(); ++it)
19     std::cout << ' ' << *it;
20   std::cout << '\n';
21 
22   return 0;
23 }
24 
25 
26 // set::count
27 #include <iostream>
28 #include <set>
29 
30 int main ()
31 {
32   std::set<int> myset;
33 
34   // set some initial values:
35   for (int i=1; i<5; ++i) myset.insert(i*3);    // set: 3 6 9 12
36 
37   for (int i=0; i<10; ++i)
38   {
39     std::cout << i;
40     if (myset.count(i)!=0)
41       std::cout << " is an element of myset.\n";
42     else
43       std::cout << " is not an element of myset.\n";
44   }
45 
46   return 0;
47 }
48 
49 
50 // set::lower_bound/upper_bound
51 #include <iostream>
52 #include <set>
53 
54 int main ()
55 {
56   std::set<int> myset;
57   std::set<int>::iterator itlow,itup;
58 
59   for (int i=1; i<10; i++) myset.insert(i*10); // 10 20 30 40 50 60 70 80 90
60 
61   itlow=myset.lower_bound (30);                //       ^
62   itup=myset.upper_bound (60);                 //                   ^
63 
64   myset.erase(itlow,itup);                     // 10 20 70 80 90
65 
66   std::cout << "myset contains:";
67   for (std::set<int>::iterator it=myset.begin(); it!=myset.end(); ++it)
68     std::cout << ' ' << *it;
69   std::cout << '\n';
70 
71   return 0;
72 }
View Code

 

例题:http://poj.org/problem?id=3050

Hopscotch

Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 5441 Accepted: 3582

Description

The cows play the child's game of hopscotch in a non-traditional way. Instead of a linear set of numbered boxes into which to hop, the cows create a 5x5 rectilinear grid of digits parallel to the x and y axes. 

They then adroitly hop onto any digit in the grid and hop forward, backward, right, or left (never diagonally) to another digit in the grid. They hop again (same rules) to a digit (potentially a digit already visited). 

With a total of five intra-grid hops, their hops create a six-digit integer (which might have leading zeroes like 000201). 

Determine the count of the number of distinct integers that can be created in this manner.

Input

* Lines 1..5: The grid, five integers per line

Output

* Line 1: The number of distinct integers that can be constructed

Sample Input

1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 2 1
1 1 1 1 1

Sample Output

15

Hint

OUTPUT DETAILS: 
111111, 111112, 111121, 111211, 111212, 112111, 112121, 121111, 121112, 121211, 121212, 211111, 211121, 212111, and 212121 can be constructed. No other values are possible.

Source

 

题目大意:

有一个 5*5 矩阵,你可以在矩阵里朝上下左右行走五步,起点任意。问能走出多少种不同的序列。

大概思路:

DFS + set去重

 

AC code(492K 32MS):

 1 #include <cstdio>
 2 #include <iostream>
 3 #include <algorithm>
 4 #include <set>
 5 #define INF 0x3f3f3f3f
 6 using namespace std;
 7 
 8 int mp[6][6];
 9 set<int> S;
10 int ans;
11 
12 void dfs(int x, int y, int step, int sum)
13 {
14     if(step == 6)
15     {
16         sum = sum*10 + mp[x][y];
17         S.insert(sum);
18         //ans = S.size();
19         //printf("%d\n", ans);
20         return;
21     }
22     else
23     {
24         sum = sum*10 + mp[x][y];
25         if(x-1 >= 1) dfs(x-1, y, step+1, sum);
26         if(x+1 <= 5) dfs(x+1, y, step+1, sum);
27         if(y-1 >= 1) dfs(x, y-1, step+1, sum);
28         if(y+1 <= 5) dfs(x, y+1, step+1, sum);
29     }
30     return;
31 }
32 
33 int main()
34 {
35     for(int i = 1; i <= 5; i++)
36     for(int j = 1; j <= 5; j++)
37     {
38         scanf("%d", &mp[i][j]);
39     }
40 
41     for(int i = 1; i <= 5; i++)
42     for(int j = 1; j <= 5; j++)
43     {
44         dfs(i, j, 1, 0);
45     }
46     ans = S.size();
47     printf("%d\n", ans);
48     return 0;
49 }
View Code

 

例题:https://www.lydsy.com/JudgeOnline/problem.php?id=1588

1588: [HNOI2002]营业额统计

Time Limit: 5 Sec  Memory Limit: 162 MB
Submit: 19175  Solved: 8093

Description

营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。 Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额。分析营业情况是一项相当复杂的工作。由于节假日,大减价或者是其他情况的时候,营业额会出现一定的波动,当然一定的波动是能够接受的,但是在某些时候营业额突变得很高或是很低,这就证明公司此时的经营状况出现了问题。经济管理学上定义了一种最小波动值来衡量这种情况: 该天的最小波动值 当最小波动值越大时,就说明营业情况越不稳定。 而分析整个公司的从成立到现在营业情况是否稳定,只需要把每一天的最小波动值加起来就可以了。你的任务就是编写一个程序帮助Tiger来计算这一个值。 第一天的最小波动值为第一天的营业额。  输入输出要求

Input

第一行为正整数 ,表示该公司从成立一直到现在的天数,接下来的n行每行有一个整数(有可能有负数) ,表示第i
天公司的营业额。
天数n<=32767,
每天的营业额ai <= 1,000,000。
最后结果T<=2^31

 

Output

输出文件仅有一个正整数,即Sigma(每天最小的波动值) 。结果小于2^31 。

Sample Input

6
5
1
2
5
4
6

Sample Output

12

HINT

结果说明:5+|1-5|+|2-1|+|5-5|+|4-5|+|6-5|=5+4+1+0+1+1=12

 

 

题目大意:显而易见

大概思路:set + lower_bound() 求前驱或者后继

 

AC code:

 1 #include <bits/stdc++.h>
 2 #define INF 0x3f3f3f3f
 3 #define ll long long int
 4 using namespace std;
 5 
 6 set<ll> T;
 7 int N;
 8 
 9 int main()
10 {
11     scanf("%d", &N);
12     set<ll>::iterator it;
13     if(N == 0)
14     {
15         printf("0\n");
16         return 0;
17     }
18     ll res = 0;
19     ll p = 0;
20     N--;
21     scanf("%lld", &p);
22     res+=p;
23     T.insert(p);
24 
25     while(N--)
26     {   ll t = INF;
27         scanf("%lld", &p);
28         it = T.lower_bound(p);
29         if(it != T.end())
30         {
31             t = min(t, abs((*it)-p));
32         }
33         if(it != T.begin())
34         {
35             t = min(t, abs((*--it)-p));
36         }
37         res+=t;
38         T.insert(p);
39     }
40     printf("%lld\n", res);
41 
42     return 0;
43 }
View Code

 

STL-set集合 阅读详情

相关推荐

STL中的set集合容器进行集合运算:并、交、差实例

集合容器的集合运算:并、交、差: #include "stdafx.h" #include #include #include //集合运算:并、交、差需要包含该头文件 using namespace std; structltstr {     bool operator()(const char* s1,const char* s2) const

master_feng2009的专栏 5173

poj 3050 Hopscotch DFS

Hopscotch Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1605   Accepted: 1141 Description The cows play the child's game of hopscotch in a non-traditional

GodLike 2303

C++ STL关联容器Set与集合论入门

可以见的,以上的三个函数,其使用方法均是第一个集合开始到结束,第二个集合开始到结束,然后使用back_inserter插入器将数据插入到某一个向量或者其他容器之中,并交差是我们集合运算中的最基本的运算,有了这几种运算,我们可以构建出非常多的集合论中的各种功能,以达到我们的数学功能。集合论,是数学的一个基本的分支学科,研究对象是一般集合。这也是前文学过的标准用法,接下来,让我们了解一个更加先进和便捷的方法,auto方法迭代,这需要我们编译器开启C11标准,每个编译器的开启标准不一,请具体情况具体分析。

Dola的博客 1136

【C++】STL - 集合 set

集合(set)是一个内部自动有序且不含重复元素的容器,它可以在需要删除重复元素的情况下大放异彩,节省时间,减少思维量。set 就是关键字的简单集合,当只是想知道一个值是否存在时,set 是最有用的。set 内部采用的是一种非常高效的平衡检索二叉树:红黑树(Red-Black Tree),也称为 RB 树,RB 树的统计性能要好于一般平衡二叉树。在 set 中每个元素的值都唯一,而且系统能根据元素的值自动进行排序,set 中元素的值不能直接被改变。

weixin_53235104的博客 2万+

掌握C++ STL集合set的使用技巧

集合(set)是C++标准模板库(STL)中的一个容器,它能够存储唯一性的元素,并且这些元素会自动排序。set通常被用在需要快速查找、插入和删除操作的场景中。

weixin_42502040的博客 607

看我如何用kali实时截获隔壁"小姐姐"的上网隐私(结尾有彩蛋)

看我如何用kali实时截获隔壁&amp;amp;amp;quot;小姐姐&amp;amp;amp;quot;的手机图片等信息(结尾有彩蛋哦) 首先圈下重点:《刑法》第二百八十五条 【非法侵入计算机信息系统罪;非法获取计算机信息系统数据、非法控制计算机信息系统罪】违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或...

SoulCat 2万+

STL的集合set

集合: 集合是由元素组成的一个类,其成员可以是一个集合,也可以是一个原子,通常一个元素在一个集合中不能多次出现;由于对实现集合不是很理解,只简单写下已有的STL中的set集合使用; C++中set基本运算及操作: begin():返回指向第一个元素的迭代器 clear():清除所有元素; empty():判断集合是否为空,若为空,返回true; end():返回指向最后一个元素的迭代器; size...

weixin_30823683的博客 117

实战避坑:泛微E9流程接口与单点登录(SSO)开发全解析(含自定义Action、Restful API与免密登录)

本文深入解析泛微E9流程接口与单点登录(SSO)开发中的关键技术与避坑指南,涵盖自定义Action开发、Restful API鉴权机制及跨系统单点登录实现。通过实战案例与代码示例,帮助开发者高效完成二次开发,解决系统集成中的数据孤岛问题,提升企业信息化建设效率。

weixin_42549451的博客 676

C++STL之集合set

c++ stl集合(Set)是一种包含已排序对象的关联容器。set/multiset会根据待定的排序准则,自动将元素排序。两者不同在于前者不允许元素重复,而后者允许。 不能直接改变元素值,因为那样会打乱原本正确的顺序,要改变元素值必须先删除旧元素,则插入新元素 不提供直接存取元素的任何操作函数,只能通过迭代器进行间接存取,而且从迭代器角度来看,元素值是常数 元素比较动作只能用于型别相同的容器(即元素和排序准则必须相同) template <class Key, class Compar

qq_52023825的博客 878

EDEM基础操作指南

EDEM(Enhanced Discrete Element Method)是一种用于模拟颗粒物料行为的软件工具。它可以模拟颗粒的碰撞、流动、堆积等过程,广泛应用于颗粒物料工程、振动筛分、堆垛机械、矿山开采等领域。本文将介绍EDEM的基础操作步骤,并提供相应的源代码示例。以上是EDEM的基础操作步骤。通过创建EDEM项目、定义颗粒材料、导入几何模型、设置边界条件、创建颗粒流场和运行模拟,您可以开始模拟颗粒物料的行为并进行相应的分析和优化。请根据您的具体需求和场景进行相应的参数设置和功能调用。

TrDelphi的博客 5295

期末求生指南:手把手教你用浏览器开发者工具绕过百一测评切屏检测

本文详细介绍了如何利用浏览器开发者工具绕过百一测评的切屏检测功能。通过分析JavaScript事件监听机制,定位关键检测代码,并提供实时调试和本地覆盖两种修改方法,帮助学生在遵守规则的前提下更灵活地应对在线考试。文章还包含风险控制和替代方案等实用建议。

weixin_28698059的博客 551

STL库入门——set集合

set在stl库中是集合的意思,每个元素最多出现一次。set会自动排好序,默认从小到大。一句话概括一下。 当然我们还是要通过例题来理解set的含义和用法。 安迪的第一个字典–紫书 问题描述:输入一个文本,找出所有不同的单词(连续的字母序列),按字典序从小到大输出,单词不区分大小写。 本题主要是展示set的用法 首先我们来看第一个代码: #include<bits/stdc++.h> u...

qq_272941692的博客 1309

“挑战杯”大赛“揭榜挂帅”赛道-baseline解析

在这个脚本中,txt文件的保存路径为'yolov7/datasets/Fatigue_driving_detection/txt_labels/',而xml文件的路径为'./label_xml/'。标注图片后的产物是会给每一个图片对应生成一个xml格式的文件,但是如果要用yolo框架去训练模型,输入的数据必须是txt格式,因此这里有一步转换格式的过程。注意看:obs这里有三个文件夹,第一个是关键帧的文件夹A,第二个是标注时输出的位置为文件夹B,第三个是智能标注后和手动标注的合集文件夹C。

m0_62899814的博客 2322

C++ STL set集合的使用

一些涉及到集合的算法题目,可以考虑使用STL里的set来很方便地解决问题。

青春无问西东 岁月自成芳华 1万+

IAR for ARM 搭建STM32F103C8T6工程模板(实战指南)

本文详细介绍了如何在IAR for ARM开发环境中为STM32F103C8T6微控制器搭建完整的工程模板。从环境准备、固件库获取、目录结构设计到工程配置与编译调试,提供了实战指南和常见问题解决方案,帮助开发者快速建立稳定的STM32开发环境。

fun88的博客 990

如何使用Agent框架来模拟群体智能?

Agent 框架作为人工智能领域的重要工具,可以模拟复杂的群体智能行为,广泛应用于社会科学、经济学和行为学等领域。

335

STL源码剖析——STL算法之set集合算法

本节介绍set集合的相关算法,分别是并集set_union,差集set_difference,交集set_intersection和对称差集set_symmetric_difference,这是个函数都提供了两个版本的函数原型:第一个版本是采用默认的排序比较方式 operator<;第二个版本是用户通过仿函数comp自行指定排序方式。注意:这四个算法接受的输入区间都是有序的,输出也是有序的。

关注校招求职,微信号:job_campus 2562

【git】git: ‘interpret-trailers’ is not a git command. See ‘git --help’

cents 7.6系统. yum源安装git最新版本是1.8.3 报错: git: 'interpret-trailers' is not a git command. See 'git --help'. cannot insert change-id line in .git/COMMIT_EDITMSG 解决: git add xxx git commit -m "xxx" 然后修改 vim .git/hooks/commit-msg #if test -n "${reviewurl}" ; th

machh的专栏 4760

每天一个关于STL的知识:集合(set)算法,你了解了吗 ?

集合算法是一组用于处理集合数据的强大工具,它们能够帮助我们取两个集合的部分数据、比较两个集合、合并两个集合等操作。通过学习集合算法,我们可以更好地理解和处理集合数据,掌握数据处理的核心技巧。本文将逐一介绍几个常用的集合算法,并解释它们的原理和用法。无论你是初学者还是有一定经验的开发者,相信本文都能为你提供有益的知识和启发,让你在STL的集合算法中更加游刃有余。让我们一起开始这段关于集合算法的学习之旅吧!

Lion_Long的博客 1288

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C++之STL-Set集合

C++之STL-Set集合 set是关联式容器。set作为一个容器也是用来存储同一数据类型的数据类型,并且能从一个数据集合中取出数据,在set中每个元素的值都唯一,而且系统能根据元素的值自动进行排序。应该注意的是set中数元素的值不能直接被改变。C++ STL中标准关联容器set, multiset, map, multimap内部采用的就是一种非常高效的平衡检索二叉树:红黑树,也成为RB树(Red-Black Tree)。RB树的统计性能要好于一般平衡二叉树,所以被STL选择作为了关联容器的内部结构。 #

YANJINING 224

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【C++ STL哈希容器】unordered_set 无序集合

【C++ STL有序关联容器】set 集合。查看已定义 uset 容器存储元素的个数,并通过正向迭代器输出各元素。int main()//创建一个空的unordered_set容器//给 uset 容器添加数据//查看当前 uset 容器存储元素的个数//遍历输出 uset 容器存储的所有元素iter!

普罗米修斯的博客 1477

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

c++stl之set(集合)

一、set用法总结 1.insert,插入 2.erase,删除 3.count,判断是否在set中 4.size,获取元素个数 5.clear,清空集合 6.集合的复制,直接用等号复制 7.set是默认排好序从小到大的,如果想要从大到小,用以下方式定义 set<int, greater<int> >vis; 8.set::iterator it=s.upper_boun...

zhoucheng_123的博客 852

(C++)STL-集合set

集合(set)是一个内部自动有序且不含重复元素的容器。set<类型名> 变量名//例如://结构体set<int> arr[20]//数组。

2301_79894300的博客 262

STL之set集合

数学上的集合中不能包含两个相同的元素,STL中的set也一样,会对相同的元素忽略处理,而且set容器中的元素已按从小到大的顺序排列 set用法:            使用集合set前需包含头文件#include 1.定义        sets;   //这样就定义了一个int类型的集合 2.插入元素         int a=100;        s.insert(a

Max的博客 445

集合的差(STL set的某些用法)

时间限制: 1 Sec 内存限制: 128 MB [提交] [状态] 题目描述 有两个数列A和B,那些在A中出现但不在B中出现的数就称为集合A和集合B的差:A-B。例如:A={1 ,4, 5, 2, 6} ,B={ 5,3,2,7} , 那么A-B = {1,4,6}。 现在给你2个集合A和B,求A-B有多少个数。 输入 第一行2个整数na和nb,表示集合A和集合B各有多少个整数,1<=n...

upc122的博客 3179
上一篇: 二叉树的 前序 || 中序 || 后序遍历
下一篇: (第五场)G max 【数论】
莜莫oO
博客等级 码龄9年 7粉丝 226原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值