关于vector的扩容机制 C/C++

关于vector的扩容机制

往vector中添加元素时,如果空间不够将会导致扩容。vector有两个属性:size和capacity。size表示已经使用的数据容量,capacity表示数组的实际容量,包含已使用的和未使用的。 ...
阅读全文
STL中的迭代器失效 C/C++

STL中的迭代器失效

一、迭代器失效 向容器添加或者删除元素可能会导致指向容器的指针、引用或者迭代器失效。使用已经失效的指针、引用或者迭代器将会导致程序出现异常,编码过程中一定要时刻注意迭代器失效的场景。 例如,以vect...
阅读全文
Golang中glog库的使用方法 Golang

Golang中glog库的使用方法

一、关于glog库 golang中的glog库是google著名开源C++日志库glog的golang版本,在golang默认日志库的基础上做了更进一层的封装使得该库能更贴近日常使用。项目首页为gol...
阅读全文
实现函数strcpy/memcpy/memmove 编程语言

实现函数strcpy/memcpy/memmove

一、strcpy strcpy是字符串拷贝函数,将一个字符串拷贝到另一个字符串。 代码: 实现该函数的注意点: 传入参数src使用const修饰,避免函数内部修改数据。 使用p备份dst指针,在拷贝完...
阅读全文
extern C/C++

extern “C”语句的作用

c++中,调用c语言函数时要对函数添加声明extern "C",这是因为c和c++的符号表机制不一样导致的。 假设存在函数fun,经过gcc编译后,该函数在符号表中的名字是fun,但是经过g++编译后...
阅读全文
指针和引用的区别 C/C++

指针和引用的区别

区别: 指针是一个变量类型,引用只是一个变量别名。 指针可以不用初始化,引用必须初始化。 指针可以指向空地址,引用不能指向空。 指针初始化后可以修改,引用不能修改。 其他: 引用本质上也是一个指针,内...
阅读全文
linux c获取文件路径和文件名 C/C++

linux c获取文件路径和文件名

linux提供了两个函数分别用来获取文件所在的目录和文件名: 它们被包含在头文件libgen.h中,dirname取得的路径名不包含最后的/,basename取自于最后一个下划线后的内容。 以下是几个...
阅读全文