文档详情

C++中set的用法学习.docx

发布:2025-05-12约2.09千字共4页下载文档
文本预览下载声明

C++中set的用法学习

目录创建Set对象添加元素删除元素迭代器的使用总结Set是C++STL(标准模板库)的一个容器类,它用于存储不同的值,并且可以按照特定顺序进行访问和操作。Set是一种基于红黑树实现的关联容器,也就是说它的元素按照固定的顺序排列,且每个元素都唯一。

Set中包含的元素是自动排序的,因此,如果你需要在存储值的同时能够高效的进行查找,那么Set会是一个很好的选择。

创建Set对象

为了使用Set对象,首先必须包含头文件。下面是创建一个Set对象的语法:

std::setDataTypemy_set

其中,DataType表示元素的数据类型,而my_set则是创建的Set对象名称。

接下来创建一个名为int_set的Set对象,其中元素为整型:

#includeset

#includeiostream

intmain(){

std::setintint_set;

return0;

}

添加元素

为了向Set对象中添加元素,我们可以使用insert()方法。在添加元素的同时,也会保证集合中的元素不重复,就是说如果在Set中已经包含了该元素,那么新加入的数据将不会被插入到Set中。下面是插入元素到Set中的示例:

#includeset

#includeiostream

intmain(){

std::setintint_set;

int_set.insert(3);

int_set.insert(2);

int_set.insert(1);

return0;

}

删除元素

Set中还提供了erase()方法来删除Set中的元素。它的参数可以是一个迭代器,也可以是元素的值。下面是删除指定元素的示例:

#includeset

#includeiostream

intmain(){

std::setintint_set;

int_set.insert(3);

int_set.insert(2);

int_set.insert(1);

int_set.erase(2);

return0;

}

迭代器的使用

迭代器提供了访问Set中元素的方法,可以遍历Set中的所有元素。可以使用begin()方法获取第一个元素的迭代器,使用end()获取最后一个元素的下一个位置:

#includeset

#includeiostream

intmain(){

std::setintint_set;

int_set.insert(3);

int_set.insert(2);

int_set.insert(1);

for(std::setint::iteratorit=int_set.begin();it!=int_set.end();++it){

std::cout*it;

return0;

}

以上代码会输出:123。

C++Set还提供了其他的常见操作,例如:

find():查找Set中是否包含指定元素并返回该元素的迭代器,若没有找到则返回end()。size():返回Set中元素的个数。

#includeset

#includeiostream

intmain(){

std::setstd::stringname_set;

name_set.insert(Tom);

name_set.insert(Bob);

name_set.insert(Jerry);

std::setstd::string::iteratorit=name_set.find(Tom);

if(it!=name_set.end()){

std::coutTomisintheSet.std::endl;

}else{

std::coutTomisnotintheSet.std::endl;

std::coutThesizeofname_setisname_set.size()std::endl;

return0;

}

以上示例代码更换了一个数据类型,演示了对字符串类型的Set的操作,输出结果为:

TomisintheSet.

Thesizeofname_setis3

总结

Set提供的操作使其成为了STL中非常有用的容器之一。由于其使用红黑树实现,查找和插入操

显示全部
相似文档