📜  向量与 pinter cout c++ (1)

📅  最后修改于: 2023-12-03 15:37:11.199000             🧑  作者: Mango

向量与 pointer:C++ 学习笔记

在 C++ 中,向量(vector)和指针(pointer)是两个非常重要的数据结构和概念,今天我们来学习一下它们的基本用法和语法。

向量
什么是向量

向量是一种能够存储任意类型元素的动态数组(dynamic array),也叫可变长数组。与普通数组不同的是,向量的长度和容量是可以动态扩展和缩减的,因此非常方便和实用。

如何定义和使用向量

定义和使用向量需要包含头文件 <vector>,语法如下:

#include <vector>  // 包含头文件

vector<int> nums;  // 定义一个空的 int 类型向量 nums
nums.push_back(1);  // 向 nums 内添加一个元素
nums.push_back(2);
cout << nums.size() << endl;  // 输出 nums 的长度,应为 2

向量的基本操作有:

  • push_back:在向量末尾添加一个元素。
  • pop_back:删除向量末尾的一个元素。
  • size:返回向量的元素数量。
  • empty:判断向量是否为空。
向量的遍历

向量可以使用迭代器(iterator)实现遍历,语法如下:

for (vector<int>::iterator it = nums.begin(); it != nums.end(); ++it) {
    cout << *it << endl;
}

其中 vector<int>::iterator 表示向量的迭代器类型,nums.begin() 表示迭代器的起始位置,nums.end() 表示迭代器的结束位置。

向量的初始化

向量的初始化有多种方式,下面列举一些常用的方式:

vector<int> nums;  // 定义一个空的 int 类型向量 nums
vector<int> nums(10);  // 定义一个长度为 10 的 int 类型向量 nums,每个元素初始化为 0
vector<int> nums(10, 1);  // 定义一个长度为 10 的 int 类型向量 nums,每个元素初始化为 1
vector<int> nums = {1, 2, 3, 4, 5};  // 定义一个包含 5 个元素的 int 类型向量 nums,分别为 1、2、3、4、5
指针
什么是指针

指针是 C++ 中的一个重要概念,它是一个存储地址的变量。指针可以指向任意类型的变量或对象,进而实现对其进行操作或访问。

如何定义和使用指针

定义一个指针需要使用 * 符号,如下所示:

int num = 10;
int *p = &num;  // 定义一个指向 num 的指针
cout << *p << endl;  // 输出指针所指向的值,应为 10

指针的操作有:

  • *:表示访问指针所指向的变量或对象。
  • &:表示访问变量或对象的地址。
指针和数组的关系

指针和数组有非常紧密的关系,在 C++ 中,数组名其实就是数组第一个元素的地址。因此,可以使用指针遍历数组,示例如下:

int nums[] = {1, 2, 3, 4, 5};
int *p = nums;
for (int i = 0; i < 5; ++i) {
    cout << *p++ << endl;  // 每次输出指针指向的元素,并将指针加一
}
指针和引用的区别

指针和引用(reference)是 C++ 中的两种重要概念,它们的作用看起来有些类似,但是有很多区别。

  • 指针是一个变量,可以对其进行赋值和修改,而引用是一个别名,不能对其进行赋值和修改。
  • 指针可以为空(NULL),引用不能为 NULL。
  • 指针可以指向任何对象,引用必须在定义时初始化,不能随意更改其指向。
总结

向量和指针是 C++ 中非常基础和重要的概念和数据结构,掌握它们的语法和用法,对于编写高效、优美和安全的代码非常重要。建议大家在实际编程中多加练习和使用,不断提升自己的编程技能。