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

601 tey zzj 集合映射

时间:2024-06-01 16:43 作者:admin 点击:
#include iostream #include set using namespace std ; int main () { //set类型 名; set int s; //输入n,输入n个数字,输出:去重后从小到大的数据 int n; cin n; int a; for ( int i = 0 ;i n;i ++ ){ cin a; s . insert (a); } /

#include <iostream>

#include <set>

using namespace std;

int main() {

//set<类型> 名;

set<int> s;

//输入n,输入n个数字,输出:去重后从小到大的数据

int n;

cin>>n;

int a;

for(int i=0;i<n;i++){

cin>>a;

s.insert(a);

}

//集合没有下标用法,遍历输出需要用【迭代器】

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

//创建一个set<int>类型的迭代器指针iterator,指针变量名为i,初始时指向集合的开头

//指针只要没指向set的结尾,就进行循环

cout<< *i <<" ";//输出i指针指向的数据

//i++表示当前指针的下一个位置

}

cout<<endl;

//auto 自动识别类型

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

cout<<*i<<" ";

}

cout<<endl;

for(int i=0;i<100;i++){

s.insert(i);

}

//find() 查找函数(值)

auto j=s.find(5);//存在返回指向的元素地址,不存在返回s.end()

if(j==s.end()) cout<<0;

else cout<<*j;

//erase() 删除函数(地址或地址区间)

cout<<endl;

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

cout<<*i<<" ";

}

cout<<endl;

s.erase(s.begin());//删除开头

auto i=s.find(5);

auto k=s.find(90);

s.erase(i,k);//从i删到k的位置

cout<<endl;

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

cout<<*i<<" ";

}

cout<<endl;

//clear() 清空函数

s.clear();//全部清空

for(int i=0;i<100;i++){

s.insert(i);

}

//count() 统计函数(值)

cout<<s.count(5);//返回集合中有多少个5

//front() 首元素

//cout<<s.front();//输出集合中的第一个元素

//back() 最后一个元素

//cout<<s.back();//输出最后一个元素

//size() 元素个数

cout<<s.size();//输出集合中的元素个数

return 0;

}

/*

类型:

<string> 字符串,有字符数组和单一类型的能力

结构:

<stack> 栈,先进后出,后进先出

<queue> 队列,先进先出,后进后出

<vector> 向量(可变数组),有数组的用法,且长度可变

<set> 集合,去重,自动有序

multiset 可重复集合,自动有序,其他的用法与set一样

<map> 映射,去重,自动有序,通过key判定重复和排序【键值对】

multimap 可重复映射,自动有序,无法用下标,其他与map一样

*/

#include <map>

//map<key类型,value类型> 名;

map<int,string> m;

int n,id;

string name;

cin>>n;

for(int i=0;i<n;i++){

cin>>id>>name;//输入保存

m[id]=name;//以键作为下标

}

m[9999999]="heihei";//直接存数据

m[9999999]="eg";//覆盖数据

cout<<m[3000];//不报错

8,haha

m.insert(map<int,string>::value_type({8,"haha"}));

m.insert(map<int,string>::value_type({8,"egeg"}));//已存,不能正常插入,不报错

for(map<int,string>::iterator i=m.begin();i!=m.end();i++){

//cout<<*i<<" ";//报错

cout<<i->first<<" "<<i->second<<" ";

//第一个是键,第二个是值

}

m.size();

m.clear();

关联容器:集合+映射

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