C++ STL 中的 set::insert() 函数
本文将讨论 C++ STL 中的 set::insert() 函数,包括其语法、工作原理和返回值。
什么是 C++ STL 中的 Set?
C++ STL 中的 Set 是一种容器,其元素必须唯一且按一定顺序排列。由于元素的值标识元素本身,因此 Set 中的元素必须唯一。一旦将值添加到 Set 容器中,就不能再修改该值,尽管仍然可以删除或添加其他值。Set 使用二叉搜索树实现。
什么是 set::insert()?
insert() 函数是 C++ STL 中的内置函数,定义在 <set> 头文件中。此函数用于向 Set 容器中插入元素。插入元素后,容器的大小会增加插入元素的数量。由于 Set 包含唯一值,因此 insert() 函数不仅插入元素,还会首先检查要插入的元素是否已存在于 Set 容器中。此外,在 Set 中,所有元素都按排序后的位置存储,因此插入的元素将根据其排序后的位置插入。
语法
Set1.insert(const type_t &value); ----(1) Or Set1.insert(iterator position, const type_t &value); -----(2) Or Set1.insert(iterator position_1, iterator position_2); -----(3)
参数
value − 要插入到 Set 容器中的值。
position − 位置提示,函数将从此位置开始搜索并插入元素到合适的位置。
position_1, position_2 − 指定要插入到 Set 中的范围的迭代器。position_1 为范围的起始位置,position_2 为范围的结束位置。
返回值
根据传递给函数的参数,函数返回不同类型的返回值。
仅传递 value 时;函数返回指向已插入到 Set 容器中元素的迭代器。
传递 position 和 value 时;函数同样返回指向已插入到 Set 容器中元素的迭代器。
传递 position_1 和 position_2 时;函数返回位于从 position_1 开始到 position_2 结束的范围内的值的集合。
示例
Input: set<int> myset;
myset.insert(10);
Output: values in the set = 10
Input: set <int> myset = {11, 12, 13, 14};
myset.insert(myset.begin(), 10);
Output: values in the set = 10 11 12 13 14示例
按顺序(一个接一个)向 Set 中插入元素
#include <bits/stdc++.h>
using namespace std;
int main(){
set<int> mySet;
mySet.insert(10);
mySet.insert(20);
mySet.insert(30);
mySet.insert(40);
mySet.insert(50);
cout<<"Elements are: ";
for (auto i = mySet.begin(); i != mySet.end(); i++)
cout << *i << " ";
return 0;
}输出
如果运行以上代码,将生成以下输出:
Elements are : 10 20 30 40 50
示例
基于位置向 Set 中插入元素
#include <bits/stdc++.h>
using namespace std;
int main(){
set<int> mySet;
auto i = mySet.insert(mySet.begin(), 10);
i = mySet.insert(i, 20);
i = mySet.insert(i, 40);
i = mySet.insert(i, 30);
i = mySet.insert(i, 80);
i = mySet.insert(mySet.end(), 90);
cout<<"Elements are: ";
for (auto i = mySet.begin(); i != mySet.end(); i++)
cout << *i << " ";
return 0;
}输出
如果运行以上代码,将生成以下输出:
Elements are: 10 20 30 40 80 90
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP