C++STL

本文介绍了C++中vector动态数组的使用,包括元素添加、删除和排序,以及二维vector的应用。同时讲解了map字典的键值对操作,队列queue的常用操作和set集合的去重与排序特性。涉及了字符串处理和迭代器的使用。
摘要由CSDN通过智能技术生成

vector:动态数组

  • 通过下标访问,或迭代器
#include<bits/stdc++.h>
using namespace std;
int main()
{
    vector<int> v;
    v.push_back(0);
        v.push_back(1);
        v.push_back(2);
    v.pop_back();
    v.insert(v.begin()+1,3);
    sort(v.begin(),v.end());//左闭右开 
    for(int i=0;i<v.size();i++){
        cout<<v[i];
    }
    return 0;
}

二维数组:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	//vector<int> a[10];//一维长度固定
    vector<vector<string> >s;//> >空格 
    s.push_back(vector<string>());//向后追加一行
    t[0].push_back("123");
	cout<<t[0][0];
	return 0;
}

删除和迭代器访问:

v.erase(v.begin+n);//删除下标为n的元素
v.erase(v.begin+1,v.begin+3);//删除区间内的元素
for(vector<typename>::iterator it=T.begin();it!=T.end();it++)
	v.erase(it);//删除迭代器指定元素
v.clear();

map:字典

  • 键值对:a[“xiaoming”]=1; 键key为xiaoming,值value为1
  • 下标或迭代器访问
map<string,int> m;//键自动排序 
for(map<string,int>::vector it=m.begin();it!=mp.end;it++){
	it->first//访问键
	it->second//访问值
}
map<string,int>::vector it=m.find( key ) ;
m.size();
m.clear();
m.erase(it) ;
m.erase(key);
m.erase(it,m.end());

qunue:队列

  • 使用pop和front前,必须使用empty判断队列是否为空
queue<int> q;
for(int i=0;i<6;i++)
	q.push(i);
for(int i=0;i<3;i++)
	q.pop();
q.front()//访问队头
q.back()//访问队尾
if(q.empty()==true)
`	cout<<"Empty";
q.size()

set:去重且自动有序

  • 只能通过迭代器访问
set<int> s;
s.insert(1); 
s.insert(2);
for(set<int>::iterator it=s.begin();it !=s.end();it++){
	printf("%d",*it);
} 
s.erase(s.find(12));
s.erase(it,s.end());
set<int>::iterator it=s.find(40);//返回迭代器,验证元素有没有
s.size();
s.clear();

string

string str;
cin>>str;//只能用cin
cout<<str;
str+=str;
>//字典序比较 
for(int i=0;i<str.length()-3;i++){
	printf("%c",str[i]);//像字符数组访问
}
printf("%s",str.c_str());
str.erase(str.begin()+2); 
str.erase(str.begin()+2,str.end-1); 
str.erase(pos,len); //
str.insert(2,"obq")
str.insert(str.begin()+2,str1.begin(),str1.end())//str:被插入的字符串,str1:插入的字符串
T.substr(1,5) ;//返回从1位开始,长度为5的字符串
T.find(_str):返回_str第一次出现的位置,否则返回 string::nops
T.replace(pos,len,str_2) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值