【PAT笔记】C++标准模板库STL(二)——set的用法和示例
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的用法和示例相关推荐
- 蓝桥杯算法竞赛系列第0章——蓝桥必考点及标准模板库STL(上)(万字博文,建议抱走)
欢迎来到:遇见蓝桥遇见你,不负代码不负卿! 目录 一.蓝桥必考点剖析 二.什么是STL 三.vector的常见用法详解 1.vector的定义 2.vector容器内元素的访问 (1).通过下标访 ...
- c语言stl模板,c/c++开发分享C++ 标准模板库 STL 顺序容器详解
c++ 标准模板库 stl 顺序容器 容器 顺序性 重复性 支持迭代器 vector 动态数组 无序 可重复 随机访问迭代器 deque 双向队列 无序 可重复 随机访问迭代器 list 双向链表 无 ...
- 标准模板库STL(Standard Template Library)
标准模板库STL(Standard Template Library)指南 /*刘振飞liuzf@pku.org.cn 1999-10-20*/ / *版权所有 (C) 1999-2004 刘振飞li ...
- C++ ——模板 标准模板库STL
C++ 知识基础 流操作符 类 & 基础 初始化和重载 类 & 高级 继承和多态 模板 & 标准模板库STL 目录 C++ 一.模板 1.函数模板 2.类模板 二.标准模板库S ...
- C++ 标准模板库(STL)
C++ 标准模板库(STL) C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列) ...
- c++标准模板库STL【快速查找】【最全】【常用】【语法】
c++标准模板库STL[快速查找][最全][常用][语法] c标准模板库STL快速查找最全常用语法 vector- 变长数组 set-内部自动有序且不含重复元素 ...
- 13 标准模板库STL【C++】
13 标准模板库STL 13- 判断题 单选题 填空题 程序填空题 函数题 7-1 .查找电话号码 7-2 姓名排序 7-3 Score Processing 13+ 编程题 7-1 查找成绩并折算后 ...
- 第十章 标准模板库STL
第十章 标准模板库STL 因为是在复习时重写的,无法在PTA上验证,编程题格式可能有误. 判断题 1.可以通过下标随机访问向量vector中的元素.(T) 2.当向量对象的内存用完之后,就会产生越界错 ...
- C++中标准模板库STL基本概念
0. 前言 C++语言的一大优势就是便于软件的重用,而重用体现在两方面: 1. 面向对象思想:继承和多态,标准类库 2. 泛程序设计(Generic Programming)思想:模板机制,标准模板库 ...
- C++ 标准模板库 STL 概述
泛型程序设计 C++ 的特点: C++ 的核心优势之一就是便于软件重用,而软件的重用在 C++ 中主要体现在以下两个方面: 面向对象的思想:继承.多态和标准类库 泛型程序设计的思想:模板机制和标准 ...
最新文章
- 是小厂全栈好,还是大厂专业工程师好?
- 【深度学习】图像自动处理工具SimpleITK的使用(Python)
- app 隔几秒记录当前经纬度位置_uni-app获取位置经纬度并定位到当前位置
- android 获取图片像素密度,android 获取屏幕的密度和像素 点
- matplotlib实践过程总结
- python自带的统计函数_NumPy统计函数的实现方法
- 将Swagger与Spring Boot REST API集成
- Android成长日记-Android布局优化
- RobotLegs框架解析
- 【python】正则表达式re模块
- opencv-4.5.5-vc14_vc15配置环境VC++
- 采用python语言对csv文件写入、最可能采用的字符串方法_2020尔雅无人机原理与构造答案章节答案...
- 什么是视图?作用是什么?
- 教育部拔尖计划计算机专业的高校,“拔尖计划”10周年!教育部公布的荣誉奖项名单都有谁?...
- 004Spring事务001JdbcTemplate
- 腾达ac1200开虚拟服务器,腾达F1200 11AC双频无线路由器的上网设置教程
- ppt不能保存我html,powerpoint无法保存怎么解决
- 加州大学欧文分校 计算机专业,加州大学欧文分校计算机专业申请条件(附案例)...
- 计算机组装前需要的准备工作,手把手教你攒电脑:组装电脑全过程
- 每日一题 2019/4/8
热门文章
- Robot Framework 自动化框架 - 定制自己的library
- 山海演武传·黄道·第一卷 雏龙惊蛰 第二十二 ~ 二十四章 真龙之剑·星墟列将...
- Asp.Net 2.0中的客户端脚本
- STM32F103mini教程通用定时器
- 强化学习(五)—— AlphaGo与Alpha Zero
- 在Fedora 14上安装Sun JDK 6 (转载)
- c++服务器开发学习--01--c++基础,socket
- UnboundLocalError: local variable ‘XXX‘ referenced before assignment解决办法
- mbedtls移植体验
- optee对std smc的处理的详解