只是一个蒟蒻
只是自己的笔记,传一下防丢,当云盘了。
tips:如果有人看的话,一定不要因为那么长的变量名而看不下去,真的只是名字长,没有别的,细心看的话一定能看明白。代码可以运行,边看代码边看调试结果。另外建议放到编译器里去看更方便。
#include <bits/stdc++.h>
using namespace std;
/*
map容器是一种关联型容器,能将两种不同(或相同)的变量绑定在一起,分别为key,value。
map容器内部由一颗红黑树实现,由于红黑树的高效性,使得map容器中很多的函数都能以log时间
度实现,非常高效。
由于map的实现方式是维护红黑树,所以map的空节点在不存储的时候也会占用空间,每个空间16字节。
小声吐槽:这玩意好像出现问题要不然报几百个错要不然不会报错直接运行但没结果结束,好烦...
本段代码并非伪代码,为真实代码,可以运行,运行结果为不同函数应用结果,无标记需要一一对应。
代码已经经过调试可用,不同区域的不同演示map已经通过不同名称标出方便查看。
编写环境Dev-C++ 5.11。
*/
int main(){
/*构建*/
map<int,string> m;//构建map容器(六种方法之一)。
/*插入*/
/*insert插入方法(之一)*/
m.insert(pair<int,string>(1,"student1"));
m.insert(pair<int,string>(2,"student2"));
m.insert(pair<int,string>(3,"student3"));//12-14:插入。
// pair<variable_type_a,variable_type_b>表示此处变量类型为ab关联型。
// pair<variable_type_a,variable_type_b>(variable_a,variable_b)表示两个关联变量 。
// !!注意 当容器中有这个关键字时,该插入方法会失败 注意!!。
map<int,string>::iterator iter;//设置一个map指针,类型为int-string。
for(iter = m.begin();iter!=m.end();iter++)
// map_name.begin()返回容器开头指针,map_name.end()返回容器结尾指针 。
{
cout<<iter->first<<" "<<iter->second<<endl;
// iterator_name->first表示key内容,iterator_name->second表示value内容。
}
// 当不确定插入是否成功时,可以使用pair函数进行判断。
pair<map<int,string>::iterator,bool> insert_bool;
// 定义一个pair<map<vairbale_type_a,vairbale_type_b>,bool> iterator_name存储插入结果。
insert_bool = m.insert(pair<int,string>(1,"student1000"));//插入一个已经含有的关键字 。
if(insert_bool.second == true)
cout<<"insert was successfully"<<endl;
else
cout<<"insert was failure"<<endl; //验证结果,可插入为true,不可插入为false。
cout<<endl;
/*数组类型插入*/
m[4] = "student4";
m[5] = "student5";
m[6] = "student6";
// map重构了数组的中括号,所以括号内填写key类型变量,以key为下标的元素中存储value。
for(iter = m.begin();iter != m