伙伴云客服论坛»论坛 S区 S软件开发 查看内容

0 评论

0 收藏

分享

C++中set的用法学习

目录

    创建Set对象添加元素删除元素迭代器的使用总结

Set是C++ STL(规范模板库)的一个容器类,它用于存储不同的值,并且可以依照特定顺序停止访问和操作。Set是一种基于红黑树实现的关联容器,也就是说它的元素依照固定的顺序排列,且每个元素都唯一。
Set中包含的元素是自动排序的,因而,假设你需要在存储值的同时可以高效的停止查找,那么Set会是一个很好的选择。

创建Set对象

为了使用Set对象,首先必需包含头文件。下面是创建一个Set对象的语法:
std::set<DataType> my_set其中,DataType表示元素的数据类型,而my_set则是创建的Set对象名称。
接下来创建一个名为int_set的Set对象,其中元素为整型:
#include<set>
#include<iostream>

int main(){
    std::set<int> int_set;
    return 0;
}
添加元素

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

int main(){
    std::set<int> int_set;
    int_set.insert(3);
    int_set.insert(2);
    int_set.insert(1);
    return 0;
}
删除元素

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

int main(){
    std::set<int> int_set;
    int_set.insert(3);
    int_set.insert(2);
    int_set.insert(1);
    int_set.erase(2);
    return 0;
}
迭代器的使用

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

int main(){
    std::set<int> int_set;
    int_set.insert(3);
    int_set.insert(2);
    int_set.insert(1);
    for (std::set<int>::iterator it=int_set.begin(); it!=int_set.end(); ++it){
        std::cout << *it << " ";
    }
    return 0;
}以上代码会输出:1 2 3。
C++ Set还提供了其他的常见操作,例如:
    find():查找Set中是否包含指定元素并返回该元素的迭代器,若没有找到则返回end()。size():返回Set中元素的个数。
#include<set>
#include<iostream>

int main(){
    std::set<std::string> name_set;
    name_set.insert("Tom");
    name_set.insert("Bob");
    name_set.insert("Jerry");
    std::set<std::string>::iterator it = name_set.find("Tom");
    if (it != name_set.end()){
        std::cout << "Tom is in the Set." << std::endl;
    } else {
        std::cout << "Tom is not in the Set." << std::endl;
    }
    std::cout << "The size of name_set is " << name_set.size() << std::endl;
    return 0;
}以上示例代码更换了一个数据类型,演示了对字符串类型的Set的操作,输出结果为:
Tom is in the Set.
The size of name_set is 3

总结

Set提供的操作使其成为了STL中非常有用的容器之一。由于其使用红黑树实现,查找和插入操作都非常快速,而且还可以保证数据存储的唯一性。我们可以根据自己的需要去选择容器,假设需要保证数据唯一性且操作速度要快,那么建议使用Set容器。
到此这篇关于C++中set的用法学习的文章就介绍到这了,更多相关C++ set内容请搜索网站以前的文章或继续阅读下面的相关文章希望大家以后多多支持网站!

回复

举报 使用道具

全部回复
暂无回帖,快来参与回复吧
本版积分规则 高级模式
B Color Image Link Quote Code Smilies

桦艺
注册会员
主题 21
回复 24
粉丝 0
|网站地图
快速回复 返回顶部 返回列表