其他分享
首页 > 其他分享> > 基础知识点 | 1020_STL容器,dynamic_cast,重写重载和volatile等知识点

基础知识点 | 1020_STL容器,dynamic_cast,重写重载和volatile等知识点

作者:互联网

1.字符串函数


函数声明:char *strcat ( char *desst, const char *src )

功能:连接字符串,将 src 字符串 拷贝到 dest 所指的字符串尾


函数声明:char *strcpy(char *dest, const char *src)

功能:复制字符串,将 src 字符串 复制赋值给 dest 所指的字符串尾



2.STL container


序列容器:动态数组vector,双端队列deque(本质是动态数组加索引),链表list

关联容器:set,map,multiset,multimap,bitset(叫bit_array更合适)。

容器适配器:stack,queue,priority_queue。


关于迭代器:

关联容器删除当前的iterator,只会使当前的iterator失效,只要在erase前,递增当前iterator即可。

序列式容器,删除当前的iterator会使后面所有元素的iterator都失效。这是因为vetor, deque使用了连续分配的内存,删除一个元素导致后面所有的元素会向前移动一个位置。不过erase方法可以返回下一个有效的iterator,list使用了不连续分配的内存,但它的erase方法也会返回下一个有效的iterator。



3.初始化


在C++中,类的静态成员必须在类内声明,在类外初始化,像下面这样:

class A{ 
private: 
    static int count ; // 类内声明 
}; 
int A::count = 0 ; // 类外初始化,不必再加static关键字 

能在类中初始化的成员只有一种,那就是静态常量成员

class A{ 
private: 
    static const int count = 0; // 静态常量成员可以在类内初始化 
};


4.dynamic_cast 动态转换


dynamic_cast<>用于C++类继承多态间的转换,分为:



5.多态,重写,重载


重载和重写的区别:


多态分为两类:


静态多态和动态多态区别:



6.volatile关键字


volatile 关键字用于阻止编译器过度优化:

  1. 阻止编译器为了提高速度将一个变量缓存到寄存器内而不写回(单次读写的原子性)
  2. 阻止编译器调整操作 volatile 变量的指令顺序(有序性)
  3. 保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。(实现可见性)

标签:知识点,函数,iterator,STL,dynamic,多态,cast,指针,1020
来源: https://www.cnblogs.com/july-iet/p/15431237.html