c++标准模板

STL:标准模板库

STL: Standard Template Lib

1, 向量(vector):对数组的封装


特点:读取能在常数时间完成——>无论存了10个数组还是一万个数组都能在在固定时间找出来,

初始化方法:


例子:


向量初始化之后,会有一些配套使用方法。


数组的遍历方法

1、看清是k<vec.size(),输出是vec[i]。



2、用迭代器 iterator



citer 是迭代器变量属性是vector<string>::iterator,先把数组的第一个元素begin()给citer


list:链表模ban

ABCDE是数据部分,另一个是指针部分,指针部分用于将各个节点串连起来A->B->C->D->E

链表可以有多个节点、没有节点的是空链表

也可以是双向链表从头指向尾、或从尾指向头

特点:数据插入速度快。只需在要插入的前一个的指针域指向插入的数据、在插入的指针域指向要插入的后一个就可以,这要比向量简单很多


list<int> list1;
list1.push_back (4);
list1.push_back (7);
list1.push_back (10);

错的遍历:

for (int  i=0 ; i< list1.size (); it++ )
{
cout << *list1[1]<< endl;    //这样遍历时错误的,因为 *list1[1]来访问每个元素、只能用迭代器
}

对的遍历:

list<int>::iterator itor = list1.begin ();

for ( ; itor != list1.end (); itor++ )
{
cout << *itor << endl;
}

3、映射 map

可以通过键找到对应的值,一对一对存在


map<string, string> m;       只是先定义一个map,下面在单独定义对。

 pair<string, string> p1("S","Shang Hai");
  pair<string, string> p2("B","Bei Jing");
  pair<string, string> p3("G","Guang Zhou");
    m.insert(p1);
    m.insert(p2);
    m.insert(p3);
 map<string, string>::iterator itor;
   for(itor=m.begin();itor!=m.end();itor++)             itor要在m的第一个元素,当在最后元素的后面时结束


   {cout<<itor->first<<endl;
   cout<<itor->second<<endl;}
   
    return 0;


使用方法:10对应的就是上海,20对应的就是北京,当然10也可以定义成字符串形式


这里m.push_back (p1)不能用。要用m.insert(p1)

遍历也用迭代器

map<int, string>::iterator itor = m.begin ();
for ( ; itor != m.end (); itor++ )
{
cout << itor->first << endl;
cout << itor->second << endl;       //不能直接写成*itor,因为映射含有一对、要分别将键、值指出
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值