C++之动态数组

C++给我们提供了一个叫Vector的类,这个Vector在std命名空间中。这个Vector有点像一个集合,一个不强制其实际元素具有唯一性的集合,和数组一样,但是和C++普通的数组又不太一样,和标准的数组不同当你创建Vector时,你不需要给他一个边界值,只需要把元素放进去就好了,你每放一个元素进去,这个数组大小会自动增长。接下来为我们看这段代码,先了解一下Vector是怎么使用的:

cpp 复制代码
#include <iostream>
#include <string>
#include <vector>

struct Vertex
{
	float x, y, z;
};
//重载<<
std::ostream& operator<<(std::ostream& stream, const Vertex& vertex)
{
	stream << vertex.x << " ," << vertex.y << " ," << vertex.z;
	return stream;
}

int main()
{
	//Vertex* vertices = new Vertex[5];//普通数组要确定大小
	std::vector<Vertex> vertices;
	vertices.push_back({1,2,3}); //加入元素
	vertices.push_back({ 4,5,6 });

	for (int i = 0; i < vertices.size(); i++)
		std::cout << vertices[i] << std::endl;

	vertices.erase(vertices.begin() + 1); //去除第二个元素
	for (Vertex& v : vertices)  // 实际上是将vertex复制到这个for范围中,但是为了节约内存我们加了&引用
		std::cout << v << std::endl;

	std::cin.get();
}

上面的注释已经写的非常清楚了,就不赘述了。

相关推荐
FQNmxDG4S1 小时前
Java多线程编程:Thread与Runnable的并发控制
java·开发语言
前端老石人2 小时前
HTML 字符引用完全指南
开发语言·前端·html
matlab_xiaowang2 小时前
Redux 入门:JavaScript 可预测状态管理库
开发语言·javascript·其他·ecmascript
虹科网络安全2 小时前
艾体宝干货|数据复制详解:类型、原理与适用场景
java·开发语言·数据库
axng pmje3 小时前
Java语法进阶
java·开发语言·jvm
汉克老师3 小时前
GESP2025年3月认证C++五级( 第三部分编程题(1、平均分配))
c++·算法·贪心算法·排序·gesp5级·gesp五级
老前端的功夫3 小时前
【Java从入门到入土】28:Stream API:告别for循环的新时代
java·开发语言·python
qq_435287923 小时前
第9章 夸父逐日与后羿射日:死循环与进程终止?十个太阳同时值班的并行冲突
java·开发语言·git·死循环·进程终止·并行冲突·夸父逐日
止语Lab3 小时前
从手动到框架:Go DI 演进的三个拐点
开发语言·后端·golang
yaoxin5211233 小时前
397. Java 文件操作基础 - 创建常规文件与临时文件
java·开发语言·python