【C++】STL库set容器


  1. Set的定义:set s1 = {1,6,-3}; // 内部自动递增排序

set < T > name;
set< int> name;
set< double> name;
set< char> name;
set< Node> name;//Node是结构体类型
(1)定义和写法和vector基本一样,同样typename可以是任何基本类型,结构体,STL容器类型。
(2)同样,typename是容器的时候,>>后要加空格,避免编译器当成位运算出错。

  1. Set:集合,一个内部自动有序而且不重复元素的容器
  2. set内的元素,自动递增排序,并且去重。
  3. set只能通过迭代器iterator访问
  4. 定义和写法和vector基本一样,<数据类型>以是任何基本类型;
  5. iterator 不支持 “+”运算符重载,但支持++、- -;

    在这里插入图片描述
    在这里插入图片描述

1、构造函数

  1. set < T > s; // 创建空集合
  2. set < T > s1=s; // 拷贝构造函数
    set < T > s1(s);
#include "stdafx.h"
#include <iostream>
#include <set>
using namespace std;

int main() {
   
	//------------------ set 的定义
	set <int> s1 = {
   1,6,-3}; // 内部自动递增排序
	for (auto it = s1.begin(); it != s1.end(); ++it) {
   
		cout << *it << " "; // -3 1 6
	}


	//------------------ set() 构造函数
	set <char> s2;
	cout << s2.size() << endl; // 0

	
	//------------------  拷贝构造函数
	set <char> s3;
	s3.insert('a');
	s3.insert('b');
	s3.insert('1');
	s3.insert('@');

	set<char> s4(s3); // set<char> s4=s3;
	for (auto it = s4.begin(); it != s4.end(); ++it) {
   
		cout << *it << " "; // 1 @ a b
	}


	return 0;
}

2、增

2.1 insert() 去重+排序

insert(x):将x插入set容器中,并且自动递增排序和去重。时间复杂度为O(logN),N为元素个数。

2.2 emplace() 去重+排序

emplace(x):将x插入set容器中,并且自动递增排序和去重。

2.3 代码演示

int main() {
   
	//------------------ insert( ) 插入——去重+排序
	set <char> s1;
	s1.insert('a');
	s1.insert('a');
	s1.insert('b');
	s1.insert('1');
	s1.insert('a');
	s1.insert('@');
	s1.insert('a');
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值