C++ STL

STL中容器类包括“顺序存储结构”和“关联存储结构”前者包括vector deque list 后者包括set map multiset multimap. 个人感觉这两类的用法很相似,需要体会为什么叫这两个名字和分成了两个组。

至于用法会了以下两段代码就明白很多了:

  set:

#include <iostream>
#include <cstdio>
#include <set>
using namespace std;

int main()
{
    ///声明
    set<int>s;

    ///插入
    s.insert(1);
    s.insert(2);
    s.insert(3);

    ///查找元素
    set<int>::iterator ite;

    ite=s.find(1); ///find返回的是查找到的地址 若没查找到就返回s.end()
    if(ite==s.end()) puts("not found");
    else puts("found");

    ///删除元素
    s.erase(3);

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

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

  map:

 

#include <iostream>
#include <cstdio>
#include <map>
using namespace std;

int main()
{
    ///声明(int 为键 const char*为值)
    map<int,const char*> m;

    ///插入
    m.insert(make_pair(1,"ONE"));
    m.insert(make_pair(10,"TEN"));
    m[100]="HUNDRED";

    ///查找元素
    map<int,const char *>::iterator ite;
    ite=m.find(1);
    puts(ite->second);      ///输出ONE

    ite=m.find(2);
    if (ite==m.end()) puts("no 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;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值