AKSZ-STL
2024-05-05 17:36:44
发布于:广东
容器
vector
一个能够自动调整大小的动态数组
定义
vector<类型名> 动态数组名;
vetor<int>v;//定义一个整型动态数组
vetor<char>v;//定义一个字符型动态数组
vetor<data>v;//定义一个结构体类型动态数组
vetor<int>v[105];//定义105个整型动态数组
vetor<int>v(n);//定义n个整型动态数组,默认初始化
vetor<int>v(n,value);//定义n个整型动态数组,默认初始化为value
迭代器
定义
vector<int>::iterator iter;//定义一个访问string类型的迭代器iter
操作
begin();//指向容器的第一个元素的迭代器
end();//指向容器尾部的下一个位置的迭代器
//++:将迭代器指向下一个位置
//*:获取迭代器指向的元素
利用迭代器访问
vector<int>::iterator it;
for(it = v.begin();it != v.end(); it++){
cout<< *it << " ";
}
set
自动升序且不含重复元素的数据结构
set <int> se;//定义set
set<int>::iterator it;//定义迭代器
se.insert(4);//插入元素
se.insert(2);
se.insert(5);
se.insert(3);
常用函数
s.size();//查看容器中有多少个元素
s.insert(x);//插入数据
s.erase(x);//删除值为x的所有元素
s.find(x);//查找集合中x的元素,存在下返回该元素的迭代器,否则返回end()
s.empty();//查找当前容器是否为空
s.lower_bound(x);//返回第一个大于等于待查元素的下标
map
定义
map<键类型,值类型> mp;
迭代器
map<stirng,int> mp;
map<stirng,int> ::iterator it;
mp[1]="apple";
mp[2]="banana";
mp[3]="orange";
for(it = mp.begin();it!=mp.end();++it){
cout<<"first:"<<it->first<<" second:"<<it->second;
}
常用函数
s.size();//查看容器中有多少个元素
s.erase(x);//删除值为x的所有元素
s.find(x);//查找集合中x的元素,存在下返回该元素的迭代器,否则返回end()
s.empty();//查找当前容器是否为空
表达式
前缀表达式(波兰表达式)
运算符在运算数前
中缀表达式加括号
运算符在运算数中间
后缀表达式(逆波兰表达式)
运算符在运算数前后
中缀表达式转后缀表达式
82+3*(20-8)/2
根据运算符的优先级对中缀表达式加括号
(82+((3*(20-8))/2))
将运算符移到对应的括号后面
(82 ((3 (20 8)-)*2)/)+
去掉所有括号
82 3 20 8-*2/+
全部评论 1
s.lower_bound(x) 返回的是 set 的迭代器
2024-05-08 来自 广东
0
有帮助,赞一个