C++学习笔记

一、顺序容器

vector、deque、list、forward_list、array、string

向容器中添加元素:insert、push_back、push_front、emplace

访问:[]、at

删除:pop_back()、pop_front()、erase()、clear()

改变大小:resize()

管理大小:

shrink_to_fit()退回不需要的(多余的)内存空间

capacity()最多可以保存的元素个数

二、string

string s(str,n)s是str前n个字符的拷贝

string s(str,pos2)s是str从下标pos2开始的字符拷贝

string s(s2,pos,len)s是str从下标pos开始len个字符的拷贝

s.substr(pos,n)返回从pos开始的n个字符的拷贝

to_string(number)将数字类型转换为string类型

stoi、stol、stoul、stoll、stoill(s,p,b)、stof、stod、stold(s,p)将string转换为数值类型

s1.merge(s2)将s2并入s1

s.remove(v)

s.reverse()反转

s.sort()

s.unique()

三、智能指针

shared_ptr允许多个指针指向同一个对象

unique_ptr独占所指的对象

防止抛异常:

int* p = new (nothrow) int;使用nothrow关键字

3.1、使用new和delete管理动态内存的3个主要问题

1、忘记delete

2、delete已经delete过的对象

3、同一块内存释放两次,或两个指针指向了同一块内存,其中一个已经delete了另一个又去delete。

shared_ptr只能直接初始化:shared_ptr p(new int(1024));

使用reset将一个新的指针赋给shared_ptr:p.reset(new int(1024))

allocator 分配为构造的内存

四、自动类型转换

explicit用于抑制构造函数定义的隐式转换

你可能感兴趣的:(c++,学习,笔记)