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();
}

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

相关推荐
froginwe111 分钟前
C# 预处理器指令
开发语言
爱装代码的小瓶子6 分钟前
【c++与Linux基础】文件篇(5)- 文件管理系统:
linux·开发语言·c++
马猴烧酒.14 分钟前
【团队空间|第十一天】基础功能实现,RBAC权限控制,ShardingSphere详解
java·开发语言·数据库
fengxin_rou14 分钟前
从 String 到 Zset:Redis 核心数据结构全解析及排行榜应用
java·开发语言·redis·多线程
Re.不晚16 分钟前
Java进阶之路--线程最最详细讲解
java·开发语言
梵刹古音17 分钟前
【C语言】 数组基础与地址运算
c语言·开发语言·算法
wuguan_18 分钟前
C#/VP联合编程之绘制图像与保存
开发语言·c#
xu_yule19 分钟前
网络和Linux网络-15(IO多路转接)reactor编程-服务器
linux·运维·服务器·c++
Howrun77719 分钟前
C++_错误处理
开发语言·c++
近津薪荼25 分钟前
优选算法——滑动窗口3(子数组)
c++·学习·算法