- 插入操作
void printMap(map<int,string> &m)
{
map<int,string>::iterator it = m.begin();
for(;it!=m.end();it++)
{
cout<<(*it).first<<", "<<(*it).second<<endl;
}
}
void test01()
{
//int 键值,string 实值
map<int,string> m;
//1.通过对组方式赋值
m.insert(pair<int,string>(9527,"星爷"));
m.insert(make_pair(10086,"移动"));
m.insert(map<int,string>::value_type(10010,"联通"));
m[10000]="电信";
printMap(m);
}
int main(int argc, char *argv[])
{
test01();
cout << "Hello World!" << endl;
return 0;
}
- map容器会自动根据键值排序,下面采用vector和map结合实现无序
class Student
{
public:
string name;
int age;
public:
Student(){}
Student(string name, int age)
{
this->name = name;
this->age = age;
}
};
#include<vector>
void test02()
{
map<int,Student> m;//存放学号 和 学员信息
vector<int> v;//存放学号
int i=0;
for(i=0;i<5; i++)
{
cout<<"请输入学生的编号:";
int num;
cin>> num;
v.push_back(num);
cout<<"请输入学生的信息:";
string name;
int age;
cin>>name>>age;
m.insert(make_pair(num,Student(name,age)));
}
//通过学号访问学员信息
vector<int>::iterator it=v.begin();
for(;it != v.end(); it++)
{
//*it == num 学号
cout<<*it<<", "<<m[*it].name<<", "<<m[*it].age<<endl;
}
//抽签(vector容器的内容打乱)
random_shuffle(v.begin(), v.end());
cout<<"---------"<<endl;
it=v.begin();
for(;it != v.end(); it++)
{
//*it == num 学号
cout<<*it<<", "<<m[*it].name<<", "<<m[*it].age<<endl;
}
}