文章目录
一、lower_bound upper_bound equal_range
操作 | 效果 |
---|---|
upper_bound(key) | 返回键值大于key的第一元素 |
lower_bound(key) | 返回键值大于等于key的第一元素 |
equal_range(key) | 返回键值等于key的元素区间 |
/*
equal_range:接受一个关键词,返回一个pair对组
若关键词存在,第一个迭代器指向第一个与关键词匹配的元素,第二个指向最后一个匹配元素之后的位置
若未找到匹配,则两个迭代器相等,都指向关键词可插入的位置。
*/
二、符号表
三、delete一个类与静态成员变量和静态成员函数的情况
#include <iostream>
using namespace std;
class cla
{
static int n;
int k = 0;
public:
cla() { n++; }
~cla()
{
n--;
cout << "~cla" << endl;
}
static int get_n()
{
return n;
}
};
int cla::n = 0;
int main(int argc, char const *argv[])
{
// cla *p = new cla;
// delete p;
cout << "n=" << cla::get_n() << endl;
//cout << p->Mytry() << endl;
cout << "hhh" << endl;
return 0;
}
1.当delete时,析构就会调用
2.就算没有构建类的时候,也能访问到静态成员变量和静态成员函数
四、::toupper
toupper:是把小写变成大写的函数
::
这个前面为什么没有命名空间或者std?
问了一位大佬,;;
这个是全局的命名空间,比std的范围还要大,所以toupper可以在外部直接使用,在局部需要加上::
五、push和reserve
push会新建容器,把之前存储的类,进行拷贝构造
emplace是原地构造,不需要吧之前存储的类拷贝构造,
这两者的共同点是,本次传入的类需要拷贝构造