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 无序可重复映射 |