往vector中添加元素时,如果空间不够将会导致扩容。vector有两个属性:size和capacity。size表示已经使用的数据容量,capacity表示数组的实际容量,包含已使用的和未使用的。 ...
STL中的迭代器失效
一、迭代器失效 向容器添加或者删除元素可能会导致指向容器的指针、引用或者迭代器失效。使用已经失效的指针、引用或者迭代器将会导致程序出现异常,编码过程中一定要时刻注意迭代器失效的场景。 例如,以vect...
C++中的友元和运算符重载
一、友元 友元可以允许其他类或者函数访问自己的非共有成员,如果类想把它的函数作为友元,只需要增加一条以friend开头的函数声明即可。 1.1 添加外部函数作为友元 以下一个学生类,类中保存了学生的年...
国内几个优质的Go Module代理仓库服务
一、简介 go module公共代理仓库,代理并缓存go模块。你可以利用该代理来避免DNS污染导致的模块拉取缓慢或失败的问题,加速你的构建。 简单来说就是国内访问被墙,go get无法在线获取到仓库,...
“缓存穿透”、“缓存击穿”和“缓存雪崩”的概念和解决办法
一、缓存 缓存的作用一般是为了减轻数据库压力设计的,因为数据都是读写磁盘,当并发量大的时候,磁盘IO可能跟不上并发量。而缓存一般设计都是放在内存中的,最常见的例如redis和memcached,都是把...
Golang中glog库的使用方法
一、关于glog库 golang中的glog库是google著名开源C++日志库glog的golang版本,在golang默认日志库的基础上做了更进一层的封装使得该库能更贴近日常使用。项目首页为gol...
实现函数strcpy/memcpy/memmove
一、strcpy strcpy是字符串拷贝函数,将一个字符串拷贝到另一个字符串。 代码: [crayon-66066e5300033302407238/] 实现该函数的注意点: 传入参数src使用co...
extern “C”语句的作用
c++中,调用c语言函数时要对函数添加声明extern "C",这是因为c和c++的符号表机制不一样导致的。 假设存在函数fun,经过gcc编译后,该函数在符号表中的名字是fun,但是经过g++编译后...
C/C++中struct和class的区别
一、class和struct的区别 C++中class和struct的区别: 继承权限,struct的默认继承权限为public,class的默认继承权限为private。 访问权限,struct的默...
指针和引用的区别
区别: 指针是一个变量类型,引用只是一个变量别名。 指针可以不用初始化,引用必须初始化。 指针可以指向空地址,引用不能指向空。 指针初始化后可以修改,引用不能修改。 其他: 引用本质上也是一个指针,内...
13