2. set的常见用法详解

set翻译为集合,是一个内部自动有序不含重复的容器。如果要使用set,需要添加头文件#include <set> 另外还要加上using namespace std;

PAT中的相关题目有(代码见下方):

1063 Set Similarity (25 分)

2.1 set的定义

与vector类似,set的定义为set<typename> name,例如:set<int> name;

2.2 set容器内元素的访问

set只能通过迭代器(iterator)访问,迭代器格式与vector格式一致,为set<typename>::iterator it=st.begin(); 支持*it访问。

2.3 set常用函数

(1)insert():insert(x),将x插入set容器中,并自动递增去重。示例:st.insert(1);

(2)find():find(value)返回set中对应值为value的迭代器。示例:set<int>::iterator it=st.find(2);在set找到2返回迭代器。

(3)erase():删除set中单个元素或者区间元素。示例:st.erase(2)或者st.erase(it,st.end());删除元素2到set末尾的元素。

(4)size():size()用来获得set元素的个数。示例:st.size();。

(5)clear():用来清空set中的所有元素。示例:st.clear()。

现在附上PAT中关于set题目的代码:

#include <stdio.h>
#include <set>
#include <iostream>
using namespace std;
const int N=51;
set<int> st[N];void compare(int a,int b){int totalNum=st[b].size(),sameNum=0;  //totalNum为新的元素 for(set<int>::iterator it=st[a].begin();it!=st[a].end();it++){  //it和st[a].end()不能用<或>if(st[b].find(*it)!=st[b].end()) sameNum++;  //存在这个数,注意判断方法 else totalNum++; }printf("%.1f%%\n",sameNum*100.0/totalNum);  //100.0要乘在分子上,不能乘在分母上
}int main(){int n,m,k,x,y,z;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&m);for(int j=0;j<m;j++){scanf("%d",&k);st[i].insert(k);}}scanf("%d",&x);for(int i=0;i<x;i++){scanf("%d%d",&y,&z);compare(y,z);}return 0;

【PAT笔记】C++标准模板库STL(二)——set的用法和示例相关推荐

  1. 蓝桥杯算法竞赛系列第0章——蓝桥必考点及标准模板库STL(上)(万字博文,建议抱走)

    欢迎来到:遇见蓝桥遇见你,不负代码不负卿! 目录 ​ 一.蓝桥必考点剖析 二.什么是STL 三.vector的常见用法详解 1.vector的定义 2.vector容器内元素的访问 (1).通过下标访 ...

  2. c语言stl模板,c/c++开发分享C++ 标准模板库 STL 顺序容器详解

    c++ 标准模板库 stl 顺序容器 容器 顺序性 重复性 支持迭代器 vector 动态数组 无序 可重复 随机访问迭代器 deque 双向队列 无序 可重复 随机访问迭代器 list 双向链表 无 ...

  3. 标准模板库STL(Standard Template Library)

    标准模板库STL(Standard Template Library)指南 /*刘振飞liuzf@pku.org.cn 1999-10-20*/ / *版权所有 (C) 1999-2004 刘振飞li ...

  4. C++ ——模板 标准模板库STL

    C++ 知识基础 流操作符 类 & 基础 初始化和重载 类 & 高级 继承和多态 模板 & 标准模板库STL 目录 C++ 一.模板 1.函数模板 2.类模板 二.标准模板库S ...

  5. C++ 标准模板库(STL)

    C++ 标准模板库(STL) C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列) ...

  6. c++标准模板库STL【快速查找】【最全】【常用】【语法】

    c++标准模板库STL[快速查找][最全][常用][语法] c标准模板库STL快速查找最全常用语法         vector- 变长数组         set-内部自动有序且不含重复元素     ...

  7. 13 标准模板库STL【C++】

    13 标准模板库STL 13- 判断题 单选题 填空题 程序填空题 函数题 7-1 .查找电话号码 7-2 姓名排序 7-3 Score Processing 13+ 编程题 7-1 查找成绩并折算后 ...

  8. 第十章 标准模板库STL

    第十章 标准模板库STL 因为是在复习时重写的,无法在PTA上验证,编程题格式可能有误. 判断题 1.可以通过下标随机访问向量vector中的元素.(T) 2.当向量对象的内存用完之后,就会产生越界错 ...

  9. C++中标准模板库STL基本概念

    0. 前言 C++语言的一大优势就是便于软件的重用,而重用体现在两方面: 1. 面向对象思想:继承和多态,标准类库 2. 泛程序设计(Generic Programming)思想:模板机制,标准模板库 ...

  10. C++ 标准模板库 STL 概述

    泛型程序设计 C++ 的特点: ​ C++ 的核心优势之一就是便于软件重用,而软件的重用在 C++ 中主要体现在以下两个方面: 面向对象的思想:继承.多态和标准类库 泛型程序设计的思想:模板机制和标准 ...

最新文章

  1. 是小厂全栈好,还是大厂专业工程师好?
  2. 【深度学习】图像自动处理工具SimpleITK的使用(Python)
  3. app 隔几秒记录当前经纬度位置_uni-app获取位置经纬度并定位到当前位置
  4. android 获取图片像素密度,android 获取屏幕的密度和像素 点
  5. matplotlib实践过程总结
  6. python自带的统计函数_NumPy统计函数的实现方法
  7. 将Swagger与Spring Boot REST API集成
  8. Android成长日记-Android布局优化
  9. RobotLegs框架解析
  10. 【python】正则表达式re模块
  11. opencv-4.5.5-vc14_vc15配置环境VC++
  12. 采用python语言对csv文件写入、最可能采用的字符串方法_2020尔雅无人机原理与构造答案章节答案...
  13. 什么是视图?作用是什么?
  14. 教育部拔尖计划计算机专业的高校,“拔尖计划”10周年!教育部公布的荣誉奖项名单都有谁?...
  15. 004Spring事务001JdbcTemplate
  16. 腾达ac1200开虚拟服务器,腾达F1200 11AC双频无线路由器的上网设置教程
  17. ppt不能保存我html,powerpoint无法保存怎么解决
  18. 加州大学欧文分校 计算机专业,加州大学欧文分校计算机专业申请条件(附案例)...
  19. 计算机组装前需要的准备工作,手把手教你攒电脑:组装电脑全过程
  20. 每日一题 2019/4/8

热门文章

  1. Robot Framework 自动化框架 - 定制自己的library
  2. 山海演武传·黄道·第一卷 雏龙惊蛰 第二十二 ~ 二十四章 真龙之剑·星墟列将...
  3. Asp.Net 2.0中的客户端脚本
  4. STM32F103mini教程通用定时器
  5. 强化学习(五)—— AlphaGo与Alpha Zero
  6. 在Fedora 14上安装Sun JDK 6 (转载)
  7. c++服务器开发学习--01--c++基础,socket
  8. UnboundLocalError: local variable ‘XXX‘ referenced before assignment解决办法
  9. mbedtls移植体验
  10. optee对std smc的处理的详解