C++-Set容器增删查遍历实现
时间:2021-08-05
本文章向大家介绍C++-Set容器增删查遍历实现,主要包括C++-Set容器增删查遍历实现使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
注:本文仅供个人参考使用,方便查找,详情请参考原文。
原文作者:CSDN博主「沧海飞帆」
原文链接:https://blog.csdn.net/ktigerhero3/article/details/78273497
本文介绍set的增删查遍历实现,使用例子如下
下面程序统计出现的数字有哪些
#include <iostream>
#include<set>
using namespace std;
int main()
{
int numList[6]={1,2,2,3,3,3};
//1.set add
set<int> numSet;
for(int i=0;i<6;i++)
{
//2.1insert into set
numSet.insert(numList[i]);
}
//2.travese set
for(set<int>::iterator it=numSet.begin() ;it!=numSet.end();it++)
{
cout<<*it<<" occurs "<<endl;
}
//3.set find useage
int findNum=1;
if(numSet.find(findNum)!=numSet.end())
{
cout<<"find num "<<findNum<<" in set"<<endl;
}else{
cout<<"do not find num in set"<<findNum<<endl;
}
//set delete useage
int eraseReturn=numSet.erase(1);
if(1==eraseReturn)
{
cout<<"erase num 1 success"<<endl;
}else{
cout<<"erase failed,erase num not in set"<<endl;
}
return 0;
}
1.增加
调用insert成员函数,注意,set包含不重复的关键字,因此插入一个已经存在的元素对容器没有影响.
numSet.insert(numList[i]);
2.遍历
使用set
3.查找
使用find函数查找
使用如
if(numSet.find(findNum)!=numSet.end())
find 返回一个迭代器,如果查找失败会返回end()元素,否则成功
4.删除
erase的返回值总是0和1,若返回0,表示删除的元素不在set中,如
int eraseReturn=numSet.erase(1);
5.循环删除
如删除值为2的元素代码如下
#include <iostream>
#include<set>
using namespace std;
int main()
{
int numList[6]={1,2,2,3,3,3};
//1.set add
set<int> numSet;
for(int i=0;i<6;i++)
{
//2.1insert into set
numSet.insert(numList[i]);
}
//2.travese set
for(set<int>::iterator it=numSet.begin() ;it!=numSet.end();it++)
{
cout<<*it<<" occurs "<<endl;
}
cout<<"before delete numSet.size()= "<<numSet.size()<<endl;
for(set<int>::iterator it=numSet.begin() ;it!=numSet.end();)
{
cout<<*it<<" occurs "<<endl;
if(2==*it)
{
cout<<*it <<"delete"<<endl;
it=numSet.erase(it);
//numSet.earse(it++)
}else{
it++;
}
}
cout<<"after delete numSet.size()= "<<numSet.size()<<endl;
return 0;
}
注意,set.earse返回值是删除的迭代器的下一个
所以可以使用 iter = set.earse(iter)
也可以使用 set.earse(iter++)
在for循环中不要用++;
原文地址:https://www.cnblogs.com/xbnxopen/p/15102291.html
- Java之StringBuffer,StringBuilder,Math,Date,SimpleDateFormat,UUID,File
- React编程思想
- 前台分页,以及类别选择
- 使用angular4和asp.net core 2 web api做个练习项目(二), 这部分都是angular
- 数据库 105道题目整理与吐血总结
- 使用angular4和asp.net core 2 web api做个练习项目(一)
- =.=
- JavaScript经典面试题之for循环click
- 学习docker on windows (1): 为什么要使用docker
- 使用VS Code开发asp.net core (下)
- 使用VS Code开发asp.net core (上)
- 小程序开发总结
- Silverlight Load Client Image 加载客户端图片
- 使用xUnit为.net core程序进行单元测试(4)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法