set用法和map用法

set是像前面说的一样使用二叉搜索树维护集合的容器,而map是维护键和键对应的值的容器。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
#include<set>
#include<map>
#define ll long long
using namespace std;
int main()
{
    set<int> s;
    s.insert(1);
    s.insert(3);
    s.insert(5);

    set<int>::iterator ite;//查找元素
    ite=s.find(1);
    if(ite==s.end()) puts("not found");
    else puts("found");

    s.erase(3);//删除元素
    if(s.count(3)!=0) puts("found");//其他的查找元素的方法
    else puts("not found");

    //遍历所有元素
    for(ite=s.begin();ite!=s.end();ite++)
    {
        printf("%d\n",*ite);
    }
    return 0;
}

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
#include<set>
#include<map>
#define ll long long
using namespace std;
int main()
{
   //声明(int为键,const char*为值)
    map<int,const char*> m;
    m.insert(make_pair(1,"ONE"));
    m.insert(make_pair(2,"SECOND"));
    m[100]="HUNDRED";
    map<int,const char*>::iterator ite;
    ite=m.find(1);
    puts(ite->second);
    ite=m.find(2);
    if(ite==m.end()) puts("not found");
    else puts(ite->second);

    puts(m[10]);
    m.erase(10);

    for(ite=m.begin();ite!=m.end();ite++)
    {
        printf("%d:%s\n",ite->first,ite->second);//遍历一遍所有元素
    }
    return 0;
}

unordered_set和unordered_map是C++标准库中的容器,用于存储和管理不重复的元素集合和键值对集合。 unordered_set是一个无序的集合容器,其中的元素是唯一的且无序的。它基于哈希表实现,因此插入、删除和查找操作的平均时间复杂度为常数时间O(1)。使用unordered_set可以快速判断一个元素是否存在于集合中。 unordered_map是一个无序的键值对容器,其中的键是唯一的且无序的。它也基于哈希表实现,因此插入、删除和查找操作的平均时间复杂度为常数时间O(1)。使用unordered_map可以根据键快速查找对应的值。 使用unordered_set和unordered_map时,需要包含头文件<unordered_set>和<unordered_map>。以下是它们的基本用法: 1. 创建容器: unordered_set<int> mySet; // 创建一个空的unordered_set unordered_map<string, int> myMap; // 创建一个空的unordered_map 2. 插入元素或键值对: mySet.insert(10); // 插入元素10到unordered_set中 myMap["apple"] = 5; // 插入键值对("apple", 5)到unordered_map中 3. 删除元素或键值对: mySet.erase(10); // 从unordered_set中删除元素10 myMap.erase("apple"); // 从unordered_map中删除键为"apple"的键值对 4. 查找元素或键值对: auto it = mySet.find(10); // 在unordered_set中查找元素10,返回迭代器 if (it != mySet.end()) { // 找到了元素 } auto it = myMap.find("apple"); // 在unordered_map中查找键为"apple"的键值对,返回迭代器 if (it != myMap.end()) { // 找到了键值对 int value = it->second; // 获取对应的值 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值