关联容器 (c++)

文章介绍了C++中map容器的三种插入元素方法以及其内部自动排序的特性,强调了键的唯一性。同时,文章讲解了迭代器的概念,展示了如何用迭代器高效遍历map、vector和list容器中的元素。

元素之间没有严格物理顺序,但是插入元素时内部是有算法进行自动排序的。

1.map容器

元素是 键和值 组成,元素的键不允许重复

#include <iostream>
#include <array>
#include <vector>
#include <list>
#include <map>
using namespace std;
int main()
{
   map<int,int> mp;

   //第一种
   mp[1]=80;
   //第二种方式
   pair<int,int> p(3,90);//pair对组也是类模板
   mp.insert(p);
   //第三种方式
   mp.insert(make_pair(2,85));

   //cout<<mp[1]<<endl; //80

   //map中的键不允许重复
   mp[1]=100;  //会覆盖掉之前的值
   mp.insert(make_pair(2,86)); //插入不成功,不会覆盖之前的值

   map<int,int>::iterator it; //it是迭代器名
   for(it=mp.begin();it!=mp.end();it++){
       cout<<"键"<<it->first<<"值"<<it->second<<endl;
   }

}

2.迭代器

迭代器是特殊的指针。可以指示元素位置。用于通用的方式遍历容器元素。遍历效率比普通方式要高
#include <iostream>
#include <array>
#include <vector>
#include <list>
#include <map>
using namespace std;
int main()
{
   map<int,int> mp;
   mp.insert(make_pair(1,80));
   mp.insert(make_pair(2,85));
   mp.insert(make_pair(4,90));
   mp.insert(make_pair(3,95));

   map<int,int>::iterator it;

   for(it=mp.begin();it!=mp.end();it++){
       cout<<"键"<<it->first<<"值"<<it->second<<endl;
   }
   vector <string> vec;
   vec.push_back("AA");
   vec.push_back("BB");
   vec.push_back("CC");
   vector<string>::iterator it2;
   for(it2=vec.begin();it2!=vec.end();it2++){
        cout<<*it2<<endl;
   }
   list<int> lis;
   lis.push_back(1);
   lis.push_back(10);
   lis.push_back(5);

   list<int>::iterator it3;
   for(it3=lis.begin();it3!=lis.end();it3++){
        cout<<*it3<<endl;
   }
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值