C/C++语言函数学习(3)STL中map容器

/******************************************************************map的基本操作函数:C++ Maps是一种关联式容器,包含“关键字/值”对begin()          返回指向map头部的迭代器clear()         删除所有元素count()          返回指定元素出现的次数empty()          如果map为空则返回trueend()            返回指向map末尾的迭代器equal_range()    返回特殊条目的迭代器对erase()          删除一个元素find()           查找一个元素get_allocator()  返回map的配置器insert()         插入元素key_comp()       返回比较元素key的函数lower_bound()    返回键值>=给定元素的第一个位置max_size()       返回可以容纳的最大元素个数rbegin()         返回一个指向map尾部的逆向迭代器rend()           返回一个指向map头部的逆向迭代器size()           返回map中元素的个数swap()            交换两个mapupper_bound()     返回键值>给定元素的第一个位置value_comp()      返回比较元素value的函数
====================================================================
1、map构造map<int, string> mapStudent;2、map添加数据mapStudent.insert(pair<int, string>(1, "student_one"));mapStudent.insert(map<int, string>::value_type(2, "student_two"));mapStudent[3] = "student_three";********************************************************************/
#pragma warning (disable:4786)
#include <map>
#include <string>
#include <iostream>using namespace std;int main()
{map<int, string> mapStudent;cout<<"三种插入方式:"<<endl;mapStudent.insert(pair<int, string>(1, "student_one"));mapStudent.insert(map<int, string>::value_type(2, "student_two"));mapStudent[3] = "student_three";mapStudent.insert(map<int, string>::value_type(4, "student_four"));	pair<map<int,string>::iterator,bool> InsertPair;   //判断是否插入成功InsertPair = mapStudent.insert(map<int,string>::value_type(5,"student_five"));if(InsertPair.second == true){//cout<<InsertPair.first.operator++<<endl;  //求解??不知道怎么应用第一个数据}cout<<"三种遍历方式:"<<endl;map<int, string>::iterator  iter;for(iter = mapStudent.begin(); iter != mapStudent.end(); iter++){cout<<iter->first<<" "<<iter->second<<endl;}map<int, string>::reverse_iterator  iters;for(iters = mapStudent.rbegin(); iters != mapStudent.rend(); iters++){cout<<iters->first<<" "<<iters->second<<endl;}  //逆序输出cout<<"数组的输出形式:"<<endl;for(int iIndex=0;iIndex < mapStudent.size();iIndex++) //size()返回成员的个数{cout<<mapStudent[iIndex]<<endl;}cout<<mapStudent.count(1)<<endl;  //count()判断关键字是否存在,返回1表示存在,0iter = mapStudent.find(1);        //find()关键字存在时,返回数据所在位置的迭代器,否则返回end()返回的迭代器if( iter != mapStudent.end() ){cout<<"数据存在:"<<iter->first<<" "<<iter->second<<endl;mapStudent.erase(iter);        //用迭代删除数据}else{cout<<"数据不存在!"<<endl;}int n = mapStudent.erase(3);		//用关键字删除,如果删除了会返回1,否则返回0iter = mapStudent.lower_bound(2);   //返回2的迭代器cout<<iter->second<<endl;iter = mapStudent.upper_bound(2);	//返回3的迭代器cout<<iter->second<<endl;	/*Equal_range函数返回一个pair,pair里面第一个变量是Lower_bound返回的迭代器,pair里面第二个迭代器是Upper_bound返回的迭代器,如果这两个迭代器相等的话,则说明map中不出现这个关键字*/pair<map<int,string>::iterator,map<int,string>::iterator> MapPair;MapPair = mapStudent.equal_range(2);if( MapPair.first == MapPair.second ){cout<<"Do not find"<<endl;}else{cout<<"Find"<<endl;}//删除一个前闭后开的集合,这是STL的特性mapStudent.earse(mapStudent.begin(), mapStudent.end());    
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/508723.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C/C++语言函数学习(4)字符串处理函数

#include <string.h>函数名称: strchr函数原型: char* strchr(char* str,char ch);函数功能: 找出str指向的字符串中第一次出现字符ch的位置函数返回: 返回指向该位置的指针,如找不到,则返回空指针参数说明: str-待搜索的字符串&#xff0c;ch-查找的…

C/C++函数学习(6)容器分类

http://net.pku.edu.cn/~yhf/UsingSTL.htm 三十分钟掌握STL STL容器分三大类&#xff1a;顺序容器(sequence container)、关联容器(associative container)和容器适配器(container adapter)。另外我们熟悉的C语言式数组合string&#xff0c;它们也是一种容器&#xff0c;称为…

Python字符串内建函数

方法 描述 string.capitalize() 把字符串的第一个字符大写 string.center(width) 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串 string.count(str, beg0,endlen(string)) 返回 str 在 string 里面出现的次数&#xff0c;如果 beg 或者 end 指…

巧用快捷键轻松设置Excel单元格格式

巧用快捷键轻松设置Excel单元格格式 在应用程序中使用快捷键&#xff0c;可以使我们避免在键盘与鼠标之间来回切换&#xff0c;从而节省大量的时间&#xff0c;显著地提高工作效率。多掌握一些常用的快捷键&#xff0c;可以使您告别菜鸟时代&#xff0c;迅速成长为电脑应用的高…

perror()与strerror()的应用及区别 man手册查询

perror() 和 strerror() 以一种直观的方式打印出错误信息&#xff0c;对于调试程序和编写优秀的程序非常有用。下面是perror() 与 strerror() 的使用范例及区别&#xff1a;perror()原型&#xff1a;#include <stdio.h>void perror(const char *s);其中&#xff0c;perro…

Linux下解压缩包命令

各种压缩文件的解包与打包命令 .tar 解包&#xff1a;tar xvf FileName.tar打包&#xff1a;tar cvf FileName.tar DirName——————————————— .tar .xz 解包&#xff1a;xz -d openvpn-2.3.5.tar.xz --stdout | tar -xv 打包&#xff1a;tar cvf - openvpn-2.3.…

PyQt学习总结

1&#xff09;QDoubleSpinBox() setRange(min,max) 设置范围Min~maxsetSingleStep(step) 设置步长为stepsetValue(value) 设置当前值为valuesetPrefix("$") 设置前缀为$setSuffix("%"&#xff09; 设置后缀为%selectAl…

Qt样例学习1(数字时钟)

/*main.cpp*/ #include <QApplication> #include <QTextCodec> #include "digitalclock.h"int main(int argc, char *argv[]) {QApplication app(argc, argv);//显示本地化&#xff0c;解决中文乱码.QTextCodec::setCodecForTr(QTextCodec::codecForLoca…

linux网络编程--数据结构与函数原型

套接字有三种类型&#xff1a;流式套接字&#xff08;SOCK_STREAM&#xff09;&#xff0c;数据报套接字&#xff08;SOCK_DGRAM&#xff09;及原始套接字。 socket() | bind() | listen() | socket() a…

OpenGL画简单图形

#include <GL/glut.h>#pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"") /*三角形GL_TRIANGLES(三个点成一个三角形)GL_TRIANGLE_STRIP(相邻三点成一个三角形)GL_TRIANGLE_FAN(同第二个&#xff0c;后2个和第一…

ubuntu下编译OpenGL

安装基本编译环境&#xff1a; sudo apt-get install build-essential 安装Opengl工具箱&#xff1a; sudo apt-get install freeglut3-dev /* main.cpp */ #include <GL/glut.h> #include <stdlib.h> #include <stdio.h> #include "app.h" using …

关于linux的进程和线程

关于linux的进程和线程 http://kenby.iteye.com/blog/1014039 Linux下的多线程编程 http://fanqiang.chinaunix.net/a4/b8/20010811/0905001105.html 线程的最大特点是资源的共享性&#xff0c;但资源共享中的同步问题是多线程编程的难点。linux下提供了多种方式来处理线程…

linux setsockopt函数

功能描述&#xff1a; 获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中&#xff0c;它们总会出现在最上面的套接字层。当操作套接字选项时&#xff0c;选项位于的层和选项的名称必须给出。为了操作套接字层的选项&#xff0c;应该 将层的值指定为SOL_S…

struct linger

Linux下tcp连接断开的时候调用close()函数&#xff0c;有优雅断开和强制断开两种方式。那么如何设置断开连接的方式呢&#xff1f;是通过设置socket描述符一个linger结构体属性。linger结构体数据结构如下&#xff1a; #include <arpa/inet.h>struct linger {int l_onoff…

几种常见的排序算法

冒泡排序 冒泡排序算法的运作如下: 1、比较相邻的元素。如果第一个比第二个大&#xff0c;就交换他们两个。 2、对每一对相邻元素作同样的工作&#xff0c;从开始第一对到结尾的最后一对。这步做完后&#xff0c;最后的元素会是最大的数。 3、针对所有的元素重复以上的步骤…

linux下调试工具的应用

http://www.ibm.com/developerworks/cn/linux/l-pow-debug/

数据结构--赫夫曼树及其应用

讲解请参考 赫夫曼 ------ 赫夫曼树和赫夫曼编码的存储表示------ typedef struct {unsigned int weight;unsigned int parent,lchild,rchild; }HTNode,*HuffmanTree; typedef char ** HuffmanCode;void HuffmanCoding(HuffmanTree& HT,HuffmanCode & HC,int *w,int …

sqlite C/C++ API

官网&#xff1a;https://sqlite.org/download.html 下载代码安装三步走&#xff1a; ./configure // ./configure --help查看安装参数设置&#xff0c;学习configure的配置&#xff0c;明白安装后include、lib、bin等文件的位置 make make install学习SQL基本语法&#xff0…

线程属性总结

今天面试那哥们问起线程属性&#xff0c;me竟然就说出了一个&#xff0c;囧 学习&#xff1a;http://blog.csdn.net/zsf8701/article/details/7842392 http://blog.csdn.net/jxhnuaa/article/details/3254299 http://blog.sina.com.cn/s/blog_9bd573450101hgdr.html int pthre…

单链表面试经典问题

/************************************************** http://www.cnblogs.com/lifuqing/archive/2011/08/20/List.html http://www.cnblogs.com/wenjiang/p/3310233.html 链表经典问题汇总:http://blog.csdn.net/vividonly/article/details/6673758 链表有关的常见面试题:htt…