C++基础编程
Hello World
1 |
|
基本数据类型
C++继承了C的所有数据类型。
bool
1字节
值为
true
或false
,即1
或0
。
函数
C++继承了C语言中的函数。
在面向对象编程中C++对函数进行了扩展。
流程控制
继承了C。
指针
空指针nullptr
动态内存
new
用于动态分配内存,并返回指向该内存的指针。
1 | int* p = new int; // 为一个 int 分配内存 |
delete
用于释放通过 new
分配的内存。
1 | delete p; // 释放为单个对象分配的内存 |
std::string类
方法
c_str()
将 C++ 的
std::string
对象转换为 C 风格的字符串(即以空字符\0
结尾的字符数组)。
函数
指针
const修饰指针
常量指针
指向常量数据的指针
1 | const int* ptr; // 或者等价写法 int const* ptr; |
指针可以修改指向(指向其他地址),但不能通过指针修改指向的数据。
示例
1 | int a = 10; |
指针常量
指针本身为常量
1 | int* const ptr; // 指针本身不可修改 |
指针的指向不可修改(必须初始化),但 可以通过指针修改指向的数据。
示例
1 | int a = 10; |
结构体
引用
作用:给变量起别名
1 | int main(){ |
注意事项:
引用必须初始化,初始化后不能发生改变
引用做函数参数
1 | void swap(int &a, int &b){ |
引用作为函数的返回值
1 | int& test01(){ |
引用的本质
引用的本质是指针常量
常量引用
通过const修饰,不能被修改
1 | void showValue(const int &a){ |
面向对象
头文件
简单使用
test.cpp
1 |
|
test.h
1 | // test.h |
main.c
1 |
|
iostream
cin
cin
使用流操作符(>>
),一次可以读取多个变量,输入用空格或回车分隔。
1 |
|
cout
cout
使用流操作符(<<
)可以连续输出多个变量。
1 |
|
string
cstring
库函数
strlen
memset
vector
init
1 |
|
push_back()
将元素添加到vector的末尾
方法签名
1 | void push_back(const _Ty& _Val); // 使用常量引用添加元素 |
示例
1 | std::vector<int> v; |
pop_back()
删除 vector
中的最后一个元素。
注意,它并不会返回删除的元素,只是移除该元素。
1 | void pop_back(); |
示例
1 | std::vector<int> v; |
at()
访问 vector
中指定索引的元素,并提供边界检查。
1 | _Ty& at(const size_type _Pos); // 返回元素的非 const 引用 |
front()
访问 vector
中的第一个元素。它返回对第一个元素的引用,允许直接修改该元素。
1 | _Ty& front(); // 返回第一个元素的非 const 引用 |
back()
用于访问 vector
中的最后一个元素。该方法返回对最后一个元素的引用。
1 | _Ty& back() // 返回一个非 const 引用 |
示例
1 | std::vector<int> v; |
size()
返回 vector
中当前元素的数量。
1 | size_type size() const; |
capacity()
返回 vector
当前分配的内存容量(即它可以容纳的元素的最大数量)。
1 | size_type capacity() const |
resize()
用于调整 vector
的大小。
如果新的大小大于当前大小,vector
会向末尾添加元素;如果新的大小小于当前大小,则会移除末尾的元素。
1 | void resize(_CRT_GUARDOVERFLOW const size_type _Newsize); |
reserve()
用于预分配至少 n
个元素的空间。
它不会改变 vector
的大小(即元素的个数),但可以减少因多次添加元素而导致的内存重新分配。
1 | void reserve(_CRT_GUARDOVERFLOW size_type _Newcapacity) |
clear()
清空 vector
中的所有元素。
empty()
检查 vector
是否为空。
erase()
删除指定位置的元素。
insert()
在指定位置插入元素。