STL set容器

这篇博客介绍了C++中集合(set)的使用,特别是基于红黑树的数据结构。示例代码展示了如何插入元素、删除元素以及遍历集合,并解释了红黑树的特性,如高效访问和平衡排序。此外,还讨论了集合中键值不可变以及相关操作的影响。

#include <set>
#include <string>
#include<iostream>
using namespace std;
int main()
{
    set<string> db;
    db.insert(string("abs"));
    db.insert(string("abd"));
    db.insert(string("abe"));
    db.insert(string("abc"));
    db.insert(string("aba"));

    //删除。
    db.erase(string("abe"));
    //db.erase("abe");

    //迭代器输出
    set<string>::iterator ite = db.begin();
    for ( ite; ite !=db.end(); ite++)
    {
        cout << *ite<<endl;
    }

    system("pause");
    return 0;
}

set:

1、关键字保存:通过实际值来排序,通过实际值来查找;

                           特点:a、高效访问,对比map:

                                             1、数据结构是红黑树;

                                             2、map是分键值对,set键值即实际值,实际值即键值。

                                       b、键值不能重复。

2、红黑树(平衡  排序二叉树):x=log2^N:

                                                                      a、N是数据总量。

                                                                      b、x是查找次数,2^x>=N。

3、键值不能改,实际值可以改。但是一般修改实际值就是修改键值会使整个结构会发生改变,一般不提倡修改。

4、没有容量;得到元素的个数,size(),尺寸;得到一个元素是否存在,或者判断一个元素是否存在, count(const key&_key);判断是否是空empty(),空返回1,非空返回0;迭代器,可以循环、也可以自加++,但不可以+2。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

clown_30

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值