亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

C++ 标准模板库 (STL) 中的向量与示例

什么是 C++ 向量?

一个 C++ 向量 是一个能够自动调整自身大小的动态数组。在向量中添加或删除元素之后,会发生调整大小。存储由容器自动处理。向量的元素存储在连续存储中。这允许 C++ 程序员使用迭代器访问和遍历向量元素。

向向量中插入新数据是在其末尾完成的。这需要一个差分时间。从向量中删除一个元素需要恒定的时间。原因是不需要调整向量的大小。在向量开头插入或删除元素需要线性时间。

在本 C++ 教程中,您将学习:

何时使用向量?

在以下情况下应使用 C++ 向量:

如何在 C++ 中初始化向量

C++中向量的语法是:

vector <data-type> name (items)

迭代器

迭代器的目的是帮助我们访问存储在向量中的元素。它是一个像指针一样工作的对象。以下是 C++ 向量支持的常见迭代器:

修饰符

修饰符用于更改指定数据类型的含义。以下是 C++ 中常用的修饰符:

示例 1

#include <iostream> 
#include <vector> 

using namespace std;
int main()
{
	vector<int> nums;

	for (int a = 1; a <= 5; a++)

		nums.push_back(a);

	cout << "Output from begin and end: ";

	for (auto a = nums.begin(); a != nums.end(); ++a)

		cout << *a << " ";

	cout << "\nOutput from cbegin and cend: ";

	for (auto a = nums.cbegin(); a != nums.cend(); ++a)

		cout << *a << " ";

	return 0;
}

输出:

下面是代码截图:

代码说明:

  1. 在我们的代码中包含 iostream 头文件。它将允许我们读取和写入控制台。
  2. 在我们的代码中包含矢量头文件。它将允许我们在 C++ 中使用向量。
  3. 包含 std 命名空间,以便在不调用它的情况下使用它的类和函数。
  4. 调用 main() 函数,在其中添加程序的逻辑。
  5. { 标记 main() 函数体的开始。
  6. 声明一个名为 nums 的向量来存储一组整数。
  7. 创建一个 for 循环来帮助我们遍历向量。该变量将帮助我们从 1 st 迭代向量元素 至 5 th 元素。
  8. 将元素从后面推入向量 num 中。对于每次迭代,这会将变量 a 的当前值添加到向量中,即 1 到 5。
  9. 在控制台上打印一些文本
  10. 使用迭代器变量 a 迭代向量 nums 的元素,从开始到结束元素。请注意,我们使用的是 vector::begin() 和 vector::end() 迭代器。
  11. 在每次迭代的控制台上打印迭代器变量 an 指向的值。
  12. 在控制台上打印一些文本。 \n 是一个换行符,将光标移动到新行以从那里打印。
  13. 使用迭代器变量迭代向量 nums 的元素,从开始到结束元素。请注意,我们使用的是 vector::cbegin() 和 vector::cend() 迭代器。
  14. 在每次迭代的控制台上打印迭代器变量 a 指向的值。
  15. 如果程序运行成功,主函数应该返回一个值。
  16. main() 函数主体的结尾。

示例 2

#include <iostream>
#include <vector> 

using namespace std;
int main()
{
	vector<int> nums;
	
	nums.assign(5, 1);

	cout << "Vector contents: ";
	for (int a = 0; a < nums.size(); a++)
		cout << nums[a] << " ";

	nums.push_back(2);
	int n = nums.size();
	cout << "\nLast element: " << nums[n - 1];

	nums.pop_back();

	cout << "\nVector contents: ";
	for (int a = 0; a < nums.size(); a++)
		cout << nums[a] << " ";

	nums.insert(nums.begin(), 7);

	cout << "\nFirst element: " << nums[0];
	
	nums.clear();
	cout << "\nSize after clear(): " << nums.size();			
}

输出:

下面是代码截图:

代码说明:

  1. 在我们的代码中包含 iostream 头文件以使用其功能。
  2. 在我们的代码中包含矢量头文件以使用其功能。
  3. 包含 std 命名空间以使用其类而不调用它。
  4. 调用 main() 函数。程序逻辑应添加到其主体内。
  5. main() 函数体的开始。
  6. 声明一个名为 nums 的向量来存储一些整数值。
  7. 在向量 nums 中存储 5 个元素。每个值为 1。
  8. 在控制台上打印一些文本
  9. 使用迭代器变量 a 来迭代向量 nums 的元素。
  10. 在控制台上打印每次迭代的向量 nums 的值。
  11. 将值 2 添加到向量 nums 的末尾。
  12. 声明一个整数变量 n 来存储向量 nums 的大小。
  13. 将向量 nums 的最后一个值与其他文本一起打印。它应该返回一个 2。
  14. 从向量 nums 中删除最后一个元素。 2 将被删除。
  15. 在控制台上打印文本。 \n 将光标移动到新行以在那里打印文本。
  16. 使用迭代器变量 a 来迭代向量 nums 的元素。
  17. 在控制台上打印每次迭代的向量 nums 的值。
  18. 将值 7 插入向量 nums 的开头。
  19. 将向量 nums 的第一个值与其他文本一起打印。它应该返回 7。
  20. 从向量 nums 中删除所有元素。
  21. 清除所有内容后,将向量 num 的大小与其他文本一起打印。它应该返回 0。
  22. main() 函数主体的结尾。

容量

使用以下函数确定向量的容量:

示例 3

#include <iostream> 
#include <vector> 
using namespace std;
int main() {
	vector<int> vector1;
	for (int x = 1; x <= 10; x++)
		vector1.push_back(x);
	cout << "Vector size: " << vector1.size()<< endl;
	cout << "Vector capacity: " << vector1.capacity() << endl;
	cout << "Maximum size of vector: " << vector1.max_size()<< endl;
	vector1.resize(5);
	cout << "Vector size after resizing: " << vector1.size() << endl;
	if (vector1.empty() == false)
		cout << "Vector is not empty"<<endl;
	else
		cout << "Vector is empty"<<endl;
	return 0;
}

输出:

下面是代码截图:

代码说明:

  1. 在我们的代码中包含 iostream 头文件以使用其功能。
  2. 在我们的代码中包含矢量头文件以使用其功能。
  3. 在我们的代码中包含 std 命名空间,以便在不调用它的情况下使用它的类。
  4. 调用 main() 函数。程序逻辑应添加到此函数的主体中。
  5. 创建一个名为 vector1 的向量来存储整数。
  6. 使用 for 循环创建值从 1 到 10 的变量 x。
  7. 将变量 x 的值推入向量中。
  8. 在控制台上与其他文本一起打印矢量的大小。
  9. 在控制台上与其他文本一起打印矢量的容量。
  10. 在控制台上与其他文本一起打印向量可以容纳的最大项目数。
  11. 调整向量的大小以仅包含 5 个元素。
  12. 在其他文本旁边打印矢量的新大小。
  13. 检查向量是否不为空。
  14. 如果向量不为空,则在控制台上打印文本。
  15. 使用 else 语句说明当向量为空时该怎么做。
  16. 如果向量为空,则在控制台上打印文本。
  17. 程序必须在成功完成后返回值。
  18. main() 函数体结束。

总结:


C语言

  1. C 标准库函数
  2. C++ 中的运算符示例:什么是、类型和程序
  3. C++ do...while 循环与示例
  4. 带有示例的 C++ Switch Case 语句
  5. C++ 动态分配数组的例子
  6. 带有示例的 C++ 指针
  7. 带有示例的 C++ 运算符重载
  8. C++ 结构与示例
  9. 带有打印示例的 C++ 标准模板库 (STL) 中的映射
  10. C++ 中的 std::list 示例
  11. 带有程序示例的 C++ 函数
  12. 结构和类的区别:用 C++ 示例解释