欢迎使用本站,预祝练习时长两年半的选手们到成功! [本模块信息来自tem/def/head]

class19 lcy 模板库02

时间:2024-08-08 09:15 作者:admin 点击:
int n; cinn; while(n--){ int a,f;//数字 string b,c;//单位1 单位2 char d,e;//= ? cinabdec; if(b=="km"c=="mm"||b=="kg"c=="mg") f=a*1000000; else f=a*1000; couta" "b" = "f" "cendl; } 以下五种结构属于序列容器(线性结构、线

int n;

cin>>n;

while(n--){

   int a,f;//数字

   string b,c;//单位1 单位2

   char d,e;//= ?

   cin>>a>>b>>d>>e>>c;

   if(b=="km"&&c=="mm"||b=="kg"&&c=="mg")

       f=a*1000000;

   else f=a*1000;

   cout<<a<<" "<<b<<" = "<<f<<" "<<c<<endl;

}


以下五种结构属于序列容器(线性结构、线性表):存储成一条线,数据存放的顺序与放置的先后有关,与数据大小无关

array 数组的类模板

deque 双向队列: 头尾都可以操作 push_back,push_front,pop_back,pop_front

vector 向量: 长度可变 push_back,pop_back

以上三种是物理连续存放的:可以使用下标,不擅长增加删除,擅长查找

---

forward_list 单向链表 push_front,pop_front

list 双向链表 push_back,push_front,pop_back,pop_front

以上两种是非物理连续存放的,通过指针连接在一起:不能使用下标,不擅长查找,擅长增加删除



以下两种容器本质上是树形结构,非线性,属于关联容器,不存在push_*,pop_*这样的功能

关联容器,数据存放的顺序与放置的先后无关,与数据大小有关

set 集合: 自动排序(从小到大),自动去重

set<int> s;

s.insert(1);

s.insert(3);

s.insert(7);

s.insert(2);

s.insert(2);

s.insert(2);

s.insert(5);

实际存储的情况:1,2,3,5,7

关联容器遍历里面的数据,需要用迭代器(指针+有方向)

正规:set<int>::iterator 迭代器类型需要与指向的元素类型一致

   for(set<int>::iterator i=s.begin();i!=s.end();i++){

       cout<<*i;//1 2 3 5 7

   }

常用:auto 根据后面的赋值,自定义该有的类型

   for(auto i=s.begin();i!=s.end();i++){

       cout<<*i;

   }


map 映射: 自动排序(从小到大,自动去重) 存储结构类似python的字典


multiset 可重复集合

multimap 可重复映射

unordered_set 无序集合

unordered_map 无序映射

unordered_multiset 无序可重复集合

unordered_multimap 无序可重复映射



(责任编辑:admin)
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%