📅  最后修改于: 2023-12-03 15:37:11.199000             🧑  作者: Mango
在 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
向量的基本操作有:
向量可以使用迭代器(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 的指针
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++ 中的两种重要概念,它们的作用看起来有些类似,但是有很多区别。
向量和指针是 C++ 中非常基础和重要的概念和数据结构,掌握它们的语法和用法,对于编写高效、优美和安全的代码非常重要。建议大家在实际编程中多加练习和使用,不断提升自己的编程技能。