c++ stl通配符(C++ stl multimap里面的pair是什么作用,功能)

本文目录
- C++ stl multimap里面的pair是什么作用,功能
- C++ STL map中如key=string,能否用mapA.begin()的方法
- C++标准库主要就指STL吗
- 关于c++stl本人自学的
- 请问C++中的STL是什么
C++ stl multimap里面的pair是什么作用,功能
map就是哈希表,用来储存成对的数据key和val
map《char,int》 m;
m.insert(make_pair(’0’,10));//插入数据,make_pair这个东西就要看自己体会了,实在不知道怎么解释
m.insert(make_pair(’1’,11));
m.insert(make_pair(’2’,12));
下面从map中读取数据,直接把key当做下标就可以得到val,只有哈希表能做这样的事情,其他如vector,list等都不行,这是哈希表最明显的特征
cout《《m《《endl;输出11
cout《《m《《endl;输出0
map还有两个特点
默认情况下插入数据的时候会自动按key排序
key不能重复,重复插入无效
map和multimap唯一的区别就在于2,multimap可以插入key相同的数据,用一个例子解释
#include "stdafx.h"
#include 《map》
using namespace std;
void showmap(map《int,char》 mp)
{
printf("\n");
for(map《int,char》::iterator iter=mp.begin();iter!=mp.end();++iter)
{
printf("%d-%c\n",iter-》first,iter-》second);
}
printf("\n");
}
void showmultimap(multimap《int,char》 mmp)
{
printf("\n");
for(multimap《int,char》::iterator iter=mmp.begin();iter!=mmp.end();++iter)
{
printf("%d-%c\n",iter-》first,iter-》second);
}
printf("\n");
}
int _tmain(int argc, _TCHAR* argv)
{
map《int,char》 mp;
mp.insert(make_pair《int,char》(0,48));
mp.insert(make_pair《int,char》(1,49));
mp.insert(make_pair《int,char》(2,50));
mp.insert(make_pair《int,char》(3,51));
mp.insert(make_pair《int,char》(1,52));
showmap(mp);
multimap《int,char》 mmp;
mmp.insert(make_pair《int,char》(0,48));
mmp.insert(make_pair《int,char》(1,49));
mmp.insert(make_pair《int,char》(2,50));
mmp.insert(make_pair《int,char》(3,51));
mmp.insert(make_pair《int,char》(1,52));
showmultimap(mmp);
getchar();
return 0;
}
运行结果:
0-0
1-1
2-2
3-3
0-0
1-1
1-4
2-2
3-3
对于map,key是唯一的,如果已经存在key了,再次插入想同key无效
multimap的key可以有多个
C++ STL map中如key=string,能否用mapA.begin()的方法
不会,string是合法的map键.
string1 《 string2语句是正确的
况且illegal instruction不是指C++的语句,是底层的机器指令发生非法操作
应该是内存访问非法问题
C++标准库主要就指STL吗
关于STL的定义,不同人理解不一。现在有人直接把 STL 定义为“the standard library”,但通常而言, STL 指的是标准库的容器、迭代器、算法这几个部分,而这远不是C++标准库的全部内容。
在C++开始标准化之时,一个名叫SGI STL的库被标准委员会投入极大关注,后来被吸收进C++标准库,主要构成 C++ 标准库的容器库(Containers library)、迭代器库(Iterators library)、算法库(Algorithms library)部分。因此后人有时就直接用 STL 指代标准库的容器、迭代器、算法这几个部分。
但是C++标准库并非只含有容器、迭代器、算法这几个部分,其他的还有每个新手都会用到的输入输出库(Input/output library,iostream、fstream都属于这里),以及字符串库(Strings library)、异常诊断库(Diagnostics library,包括 std::logic_error、std::runtime_error等异常类,assert这样的工具也属于这里)、数值运算库(Numerics library,包括 std::complex 以及相关的复数运算,随机数生成等)、语言支持库(Language support library)、Localization library等,以及C++11加入的正则表达式库(Regular expressions library)、原子操作库(Atomic operations library)、线程支持库(Thread support library),和不好归类的“通用工具库”(General utilities library)等
显然我们不能说“容器、迭代器、算法”就是C++标准库的全部,把“容器、迭代器、算法”说成C++标准库的主要部分恐怕也是有问题的
关于c++stl本人自学的
没区别。
这个程序主要是说明的find_if泛型算法的使用。
泛型算法前面两个参数都是两个跌带器,标记范围的开始和结束
左闭右开区间[begin(), end()),find_if的第3个参数是一个函数指针
是问你用那个函数进行判断找到还是没找到。
请问C++中的STL是什么
一、STL = Standard Template Library,标准模板库,惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。这可能是一个历史上最令人兴奋的工具的最无聊的术语。从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。这里的“容器”和算法的集合指的是世界上很多聪明人很多年的杰作。STL的目的是标准化组件,这样就不用重新开发,可以使用现成的组件。STL现在是C++的一部分,因此不用额外安装什麽。它被内建在你的编译器之内。
在C++标准中,STL被组织为下面的13个头文件:《algorithm》、《deque》、《functional》、《iterator》、《vector》、《list》、《map》、《memory》、《numeric》、《queue》、《set》、《stack》和《utility》。

更多文章:
全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)
2026年9月7日 17:10
matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)
2026年9月7日 16:30
oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)
2026年9月7日 15:30
电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)
2026年9月7日 12:20
scrollthrough意思(“scroll”是什么意思)
2026年9月7日 08:00
怎么激活keygen(注册机如何激活cad2008一个简单激活cad2008的方法)
2026年9月7日 06:30
vba编写excel插件(excel vba中能否动态创建控件)
2026年9月7日 04:40





