string并不是一个单独的容器,只是basic_string 模板类的一个特化,basic_string用于创建可以存储任何类型字符的字符串类:
template<
typename _CharT, // 字符的类型
typename _Tr...
阅读更多
deque属于顺序容器的一种,是一个双端队列,它允许在容器的两端进行快速插入和删除元素的操作。
deque虽然支持像vector一样样的按索引访问,但其随机访问效率不如vector。
std::deque适用于需要在首尾两端频繁进行插入和删除的场景。
deque的底层实现
deque的元素不连续存储,而是由...
阅读更多
std::array用于表示固定大小的数组。
std::array<T, N>语义上等同于一个C语言风格数组T[N],但它不会自动退化为T*。
array的size
std::array<T, N>的大小在编译时就已经确定。其大小等于sizeof(T) * N。
array的构造函...
阅读更多
override
override关键字确保你在派生类中正确地重写了一个虚函数。
override确保:
基类中存在一个同名的虚函数。
派生类中重写的函数签名(函数名、参数列表和常量性)与基类虚函数完全匹配。
如果不满足上面任何一条,编译器就会报错。
class Base {
virtua...
阅读更多
多态,字面意思就是“多种形态”,也就是对同一个行为具有多个不同表现形式。
C++中,多态主要指的是通过一个基类的指针或引用来调用派生类的虚函数时,程序能够在运行时根据实际指向的对象类型来决定调用哪个函数版本。
class Base {
public:
virtual void foo() {
...
阅读更多
友元允许一个函数或类访问另一类的私有和保护成员,从而突破封装性,实现数据共享。友元有两种类型:友元函数和友元类。
友元使设计更灵活,但也降低了封装性,应谨慎使用。
友元函数
友元函数是一个在类外部定义的函数,但它被授予了访问该类私有成员的权限。友元函数不属于任何类,它只是一个普通函数。
声明:
class ...
阅读更多
继承格式
class <派生类名> : <继承权限1> <基类名1>, <继承权限2> <基类名2>, … {
<派生类新定义成员>
};
构造顺序
定义派生类对象时,构造函数的执行顺序和派生类定义时继承的顺序保持一致。
析...
阅读更多
函数原型
#include <stdlib.h>
/*
* 分配一块指定大小的、未初始化的连续内存
* sz: 想要分配的字节数
* 返回值:
* 成功时,返回指向新分配内存块的首地址
* 失败时,返回NULL
*/
void *malloc (size_t sz);
/*
* 分...
阅读更多