在C++语言中Vector的命名空间的作用

简介: 在C++语言中Vector的命名空间的作用

在 C++ 语言中,<vector> 是标准模板库(STL)的一部分,它定义了一个名为 vector 的模板类,用于表示一种动态数组。vector 命名空间的作用就是提供这种动态数组的数据结构,使得程序员可以在不编写大量底层代码的情况下,轻松地管理和操作一系列元素。

动态数组

vector 是一种动态数组,意味着它可以在运行时调整其大小。当向 vector 添加元素时,如果底层的数组不足以容纳更多的元素,vector 会自动重新分配一个更大的数组,并将现有元素复制到新数组中。这种自动管理内存的能力极大地简化了程序员的工作,避免了手动分配和释放内存的麻烦。

特点

vector 具有以下特点:

动态大小:vector 的大小可以在运行时增长和缩小。

随机访问:vector 支持快速的随机访问,即可以通过索引直接访问元素。

元素顺序:vector 中的元素保持插入顺序。

迭代器:vector 提供了迭代器,允许程序员遍历元素。

容量:vector 有自己的容量概念,表示 underlying array 的大小。当实际元素数量超过容量时,vector 会重新分配更大的容量。

创建和初始化

创建和初始化 vector 有多种方式:

image.png

访问和修改

访问和修改 vector 中的元素非常直接:

image.png

添加和删除

向 vector 添加和删除元素也是常见的操作:

image.png

大小和容量

获取 vector 的大小和容量也很简单:

image.png

迭代器

vector 提供了迭代器来遍历元素:

image.png

排序和反转

vector 还支持排序和反转操作:

#include <iostream>
#include <vector>
#include <algorithm>
int main() {
    std::vector<int> vec = {4, 1, 3, 5, 2};
    std::sort(vec.begin(), vec.end());
    std::re
相关文章
|
28天前
|
存储 编译器 C语言
【c++丨STL】vector的使用
本文介绍了C++ STL中的`vector`容器,包括其基本概念、主要接口及其使用方法。`vector`是一种动态数组,能够根据需要自动调整大小,提供了丰富的操作接口,如增删查改等。文章详细解释了`vector`的构造函数、赋值运算符、容量接口、迭代器接口、元素访问接口以及一些常用的增删操作函数。最后,还展示了如何使用`vector`创建字符串数组,体现了`vector`在实际编程中的灵活性和实用性。
54 4
|
10天前
|
存储 对象存储 C++
C++ 中 std::array<int, array_size> 与 std::vector<int> 的深入对比
本文深入对比了 C++ 标准库中的 `std::array` 和 `std::vector`,从内存管理、性能、功能特性、使用场景等方面详细分析了两者的差异。`std::array` 适合固定大小的数据和高性能需求,而 `std::vector` 则提供了动态调整大小的灵活性,适用于数据量不确定或需要频繁操作的场景。选择合适的容器可以提高代码的效率和可靠性。
31 0
|
14天前
|
存储 编译器 C语言
【c++丨STL】vector模拟实现
本文深入探讨了 `vector` 的底层实现原理,并尝试模拟实现其结构及常用接口。首先介绍了 `vector` 的底层是动态顺序表,使用三个迭代器(指针)来维护数组,分别为 `start`、`finish` 和 `end_of_storage`。接着详细讲解了如何实现 `vector` 的各种构造函数、析构函数、容量接口、迭代器接口、插入和删除操作等。最后提供了完整的模拟实现代码,帮助读者更好地理解和掌握 `vector` 的实现细节。
27 0
|
2月前
|
算法 C++
2022年第十三届蓝桥杯大赛C/C++语言B组省赛题解
2022年第十三届蓝桥杯大赛C/C++语言B组省赛题解
57 5
|
2月前
|
存储 C++ 索引
【C++打怪之路Lv9】-- vector
【C++打怪之路Lv9】-- vector
26 1
|
2月前
|
编译器 C++
【C++】—— vector模拟实现
【C++】—— vector模拟实现
|
2月前
|
算法 C++ 容器
C++之打造my vector篇(下)
C++之打造my vector篇(下)
35 0
|
2月前
|
存储 编译器 C++
C++之打造my vector篇(上)
C++之打造my vector篇(上)
35 0
|
2月前
|
存储 编译器 C语言
深入计算机语言之C++:类与对象(上)
深入计算机语言之C++:类与对象(上)
|
2月前
|
存储 分布式计算 编译器
深入计算机语言之C++:C到C++的过度-2
深入计算机语言之C++:C到C++的过度-2