3.8 set/multiset 容器

本文详细介绍了C++中set容器的构造方法、插入与排序特性,以及拷贝构造和赋值操作。通过实例展示了如何使用set存储并遍历整数,并探讨了set自动去重和保持有序的特点。

 

#include<iostream>
#include<set>
using namespace std;
//set容器构造和赋值

void printSet(set<int>&s)
{
	for (set<int>::const_iterator it = s.begin(); it != s.end(); it++)
	{	
		cout << *it << " ";
	}
	cout << endl;
}
void test01()
{
	set<int>s1; 
	//插入数据 只有insert方式
	s1.insert(10);
	s1.insert(30);
	s1.insert(20);
	s1.insert(50);
	s1.insert(40);
	//遍历容器
	//set容器特点:所有元素插入时候自动被排序
	//set容器不允许插入重复值
	printSet(s1);

	//拷贝构造
	set<int>s2(s1);
	printSet(s2);

	//赋值
	set<int>s3; 
	s3 = s2;
	printSet(s3);
}

int main()
{
	test01();
	system("pause");
	return 0;
}

 

基本语法与结构 变量定义与基本数据类型(int, float, double, char, bool) 类型推导(auto, decltype) 运算符(算术、逻辑、比较、位运算等) 控制结构:if-else, switch, for, while, do-while 函数定义、参数传递(值传递、引用传递、指针传递) 函数重载与默认参数 const 关键字的使用(常量、常量成员函数) 2. 面向对象编程(OOP) 类与对象的定义 构造函数与析构函数 成员访问修饰符(public, private, protected) 封装、继承、多态(虚函数、抽象类) 运算符重载 this 指针 静态成员(变量与函数) 友元函数与友元类 3. 指针与引用 指针的基本操作(定义、赋值、解引用) 指针与数组的关系 引用的使用(别名机制) 指向函数的指针 nullptr 的使用 4. 内存管理 动态内存分配(new / delete, new[] / delete[]) 内存泄漏与如何避免 智能指针(std::unique_ptr, std::shared_ptr, std::weak_ptr) RAII(资源获取即初始化)模式 5. 标准模板库(STL) 容器: 序列容器:vector, list, deque 关联容器set, map, multiset, multimap 无序容器:unordered_set, unordered_map 迭代器(begin(), end(), rbegin(), rend()) 算法(sort, find, copy, transform 等) 函数对象(Functor)与 Lambda 表达式 std::pair, std::tuple, std::optional7. 命名空间 namespace 的定义与使用 嵌套命名空间 using 声明与 using namespace 8. 异常处理 try, catch, throw 异常安全编程 noexcept 说明符 9. 预处理器与宏 #include, #define, #ifdef, #ifndef 宏定义与函数宏 防止头文件重复包含(#pragma once 或 #ifndef ... #define ...) 10. 文件操作 输入输出流(iostream, fstream) 文件读写(ifstream, ofstream, fstream) 文本与二进制模式 11. 类型转换 static_cast dynamic_cast reinterpret_cast const_cast 给出一个详细的类保护上述知识点
最新发布
08-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值