map set vector stack

目录

map

set集合

2.出现2的次数

3.

Vector

1.初始化

2.添加元素

3.遍历读取

4.几种重要算法       

      


map

1.

map<int,string>mp; //map的每对都按key值(此处的int)从小到大自动排列

mp.insert(pair<int,string>(5,abcd));  //pair将两个值组成一个值

或用数组插入数据

mp[1]="aaaaaaa";
mp[2]="bbbbbbb";

2.遍历map数据

for(auto it=mp.begin();it!=mp.end();it++)
map<int,string>::iterator it;

for( it = mp.begin( ) ; it != mp.end( ); it ++)

{  
    cout<< it -> first <<' '<<  it-> second <<endl  ;   
}

反向遍历

map<int,string>::reverse_iterator it;

for ( it = mp.rbegin( ) ;it != mp.rend( ) ;it ++)

{       
     cout<< it -> first <<' '<<  it-> second <<endl  ;  
}

3.

mp.size()

mp.find(A) //A为key值  返回指针

map<int,string>::iterator it;
it=mp.find(2);
cout<<it->first<<' '<<it->>second;

set集合

默认按照升序排好的     没有重复的元素

1.初始化 添加 遍历

set<int>a;

插入元素a.insert(5); a.insert(6);

迭代器  遍历

set<int>::iterator it//或直接使用auto it=a.begin()
for(it=a.begin();it!=a.end();it++)
{
     cout<<*it<<endl;
}

2.出现2的次数

由于不存在重复  所以 a.count(2)=0或1 

可用于判断是否存在或

set<int>::iteraator ig;//或者 auto ig=a.find(2)
it=a.find(2);
 for(auto it=a.begin();it!=a.end();it++)
{
    	if(ig==it){
    		cout<<"找到了";
    		break;
		}
		else if(ig==a.end()){
			cout<<"没找到";
			break;
		}
	}

3.

a.erase(2) 无返回值

a.empty();

a.clear();

a.size();

Vector

1.初始化

(1)vector<int>a(10);   //a[10]
(2)vector<int>a(10,1);   //a[10]的每个值赋1
(3)vector<int> a(b); //用b向量来创建a向量,整体复制性赋值
(4)vector<int> a(b.begin(),b.begin+3); //定义了a值为b中第0个到第2个(共3个)元素
(5)int b[7]={1,2,3,4,5,9,8};
     vector<int> a(b,b+7); //从数组中获得初值





(6)vector<vector<string>>s;

2.添加元素

1.  a.push_back(2);
2.  a.push_back(b[i]);

3.  auto it=c.begin();
    a.push_back(*it);

3.遍历读取

1、通过下标方式读取

int a[6]={1,2,3,4,5,6};
vector<int> b(a,a+4);
for(int i=0;i<b.size();i++)
    cout<<b[i]<<" ";
 

2、通过遍历器方式读取

int a[6]={1,2,3,4,5,6};
vector<int> b(a,a+4);
for(vector<int>::iterator it=b.begin();it!=b.end();it++)
    cout<<*it<<" ";

4.几种重要算法       

      

1)sort(a.begin(),a.end()); 
  对a中的从a.begin()(包括它)到a.end()(不包括它)的元素进行从小到大排列




(2)reverse(a.begin(),a.end()); 
  对a中的从a.begin()(包括它)到a.end()(不包括它)的元素倒置,
  但不排列,如a中元素为1,3,2,4,倒置后为4,2,3,1




(3)find(a.begin(),a.end(),10); 
  在a中的从a.begin()(包括它)到a.end()(不包括它)的元素中查找10,
  若存在返回其在向量中的位置

stack

1.stack成员函数示例

stack<int>p

p.push(x)

  •    size( ) :返回栈中元素个数
  •    top( ) :返回栈顶的元素
  •    pop( ) :从栈中取出并删除元素
  •    push(e) :向栈中添加元素e
  •    empty( ) :栈为空时返回true

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值