首页
学习
活动
专区
圈层
工具
发布

【C++】vector

`vector` 是一种容器,广泛存在于多种编程语言中,如 C++、Rust、Java 等。它是一种动态数组,可以存储任意类型的元素,并且可以根据需要自动调整大小。...下面我将详细介绍 `vector` 的概念和使用方法,主要以 C++ 中的 `std::vector` 为例。 ### 1....概念 - **动态数组**:与静态数组不同,`vector` 可以在运行时改变其大小。当添加或移除元素时,`vector` 会根据需要自动调整内部存储。...- **交换**:   - `swap(other_vector)`:与另一个 `vector` 交换内容。 - **比较**:   - `==`, `!...注意事项 - **线程安全**:C++ 标准库中的 `std::vector` 不是线程安全的,如果多个线程同时访问同一个 `vector`,需要自行实现同步机制。

37810
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【C++】vector

    在前面string的介绍使用后,本文不会再详细介绍一些常见接口的使用(C++分装的特性,STL各个接口设计都差不多,阅读文档即可学会使用) vector的文档介绍 使用STL的三个境界:能用,明理,...自身提供的方法,是STL提供的算法 void TestVector5() { // 使用列表方式初始化,C++11新语法 vector v{ 1, 2, 3, 4 }; // 在指定位置前插入值为...= v.end()) { cout << *it << " "; ++it; } cout << endl; } // operator[]+index 和 C++11中vector的新式...,vector的容量为: " << v.capacity() << endl; // 经过上述reserve之后,it迭代器肯定会失效,在vs下程序就直接崩溃了,但是linux 下不会 // 虽然可能运行...的容量为: 5 扩容之后,vector的容量为 : 100 0 2 3 4 5 409 1 2 3 4 5 // 2. erase删除任意位置代码后,linux下迭代器并没有失效 // 因为空间还是原来的空间

    24710

    【c++】vector以及vector的模拟实现

    因此删除vector中任意位置上元素时,vs就认为该位置迭代器失效了 注意:Linux下,g++编译器对迭代器失效的检测并不是非常严格,处理也没有vs下极端 从上述三个例子中可以看到:SGI STL中,...,vector的容量为: " << v.capacity() << endl; // 经过上述reserve之后,it迭代器肯定会失效,在vs下程序就直接崩溃了,但是linux下不会 // 虽然可能运行...的容量为: 5 扩容之后,vector的容量为 : 100 0 2 3 4 5 409 1 2 3 4 5 // 2. erase删除任意位置代码后,linux下迭代器并没有失效 // 因为空间还是原来的空间...================= // 使用第一组数据时,程序可以运行 [sly@VM - 0 - 3 - centos 20220114]$ g++ testVector.cpp - std = c+...centos 20220114]$ vim testVector.cpp [sly@VM - 0 - 3 - centos 20220114]$ g++ testVector.cpp - std = c+

    34910

    c++: 容器vector

    介绍 C++ 中的 vector 是一种序列容器,它允许你在运行时动态地插入和删除元素。 vector 是基于数组的数据结构,但它可以自动管理内存,这意味着你不需要手动分配和释放内存。...与 C++ 数组相比,vector 具有更多的灵活性和功能,使其成为 C++ 中常用的数据结构之一。 vector 是 C++ 标准模板库(STL)的一部分,提供了灵活的接口和高效的操作。...C++ 中的 vector 是一种序列容器,它允许你在运行时动态地插入和删除元素 vector本质和 string一样也是模板 写法是vector 名称 (T是类型) 他与string的接口差不多...与string的不同 此外vector和string类不同就是vector没有append函数就是不能加一个字符串,即使是vector也只能一个一个加。...vector的成员变量都是 用迭代器定义的,我们 又可以把迭代器看作是T 就是类似于指针的东西,所以vector 就是 用指针定义的成员变量。

    35010

    【C++】vector(上)

    一、vector的介绍和使用 1、vector的介绍 这里是cplusplus官方介绍 vector是表示可变大小数组的序列容器 vector类似于数组,采用连续存储空间来存储元素,可以用下标对vector...2、vector的使用 (1)vector的定义 构造函数说明 接口说明 vector() 无参构造 vector(const vector& x) 拷贝构造 vector(size_type n,const...void test1() { vector v1; vector v2(10, 0); vector v3(v2); vector v4(v2.begin...3、vector的优越性 杨辉三角问题 对于这个杨辉三角问题,我们需要一个二维数组,用C语言来写的话稍微的复杂一些,需要malloc一个指针数组,然后指针数组的指针指向一个一维数组 对于C++...vectorvector> generate(int numRows)//numRows是杨辉三角行数 { vectorvector> vv;

    44710

    【C++】STL——vector

    前言 本篇博客继续介绍STL库里一个结构——vector,它是个顺序储存的容器,不仅可以包含字符串,还可以有其他类型,让我们一起来详细看一下它 个人主页:小张同学zkf ⏩ 文章专栏:C++...若有问题 评论区见 欢迎大家点赞收藏⭐文章 1.vector的介绍 vector介绍:vector vector的定义 2.vector的使用 2.1vector iterator 的使用 2.2vector...2.3vector增删查改 2.4vector迭代器失效问题 迭代器的主要作用就是让算法能够不用关心底层数据结构,其底层实际就是一个指针,或者是对 指针进行了封装 ,比如: vector 的迭代器就是原生态指针...对于 vector 可能会导致其迭代器失效的操作有: 1....#include using namespace std ; #include vector> int main () { vector

    30310

    C++之旅-vector

    前言 标准库类型vector表示对象集合,并且所有的对象类型相同。由于它常常“容纳”其他对象,因此常称作容器。vector也是一个类模板。...初始化 与string类型一样,vector也有很多种方式进行初始化: vector v1; //v1是一个空的vector,它包含的元素是int类型 vector v2(v1...“hello” vector v4(8); //包含了8个string类型的vector,执行8次初始化 vector v5{'a','b','c'};...//包含了三个char类型的元素,并都有相应的初始值 vector v5={'a','b','c'}; //等价于v5{'a','b','c'} 通常情况,我们可以只提供元素数量... c("hello"); //错误,字符串字面值不能用于构建vector的对象 特别注意,以下几种情况是有区别的: vector v1(8) //包含8个元素,每个元素被初始化为

    64430

    C++返回vector将vector作为参数传递

    在C++里很多时候我们会遇到函数想返回两个以上结果的情况,这时候可以用数组(vector)、类来作为容器返回,也可以声明一个全局变量的数组,将数值存放在数组里解决。... sequence; //在主调函数这边,直接传入该vector变量 getSequence(num,sequence); //访问该vector的值的时候,也是直接访问即可...=sequence.end();it++){ cout<<*it< 第二个方式是返回vector变量 在被调用函数中声明一个vector变量,函数结束的时候返回vector变量 但是这样的传参方式我有一个不太理解的地方...,既然vector变量是在被调函数中声明的,就应该是一个局部变量,在被调函数执行完毕之后这部分空间应该会被销毁,这个变量就无法访问到了,莫非vector是在堆空间开辟的地址?...然后返回的其实是指向堆空间vector的指针?

    6.8K60

    【C++】vector介绍

    前言 在之前已经介绍了string类 【C++】string类初步介绍和【C++】string进一步介绍,这次来看看C++中的顺序表vector。...2. vector的介绍 vector是表示可变大小数组的序列容器。 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。...vector分配空间策略:vector会分配一些额外的空间以适应可能的增长,因为存储空间比实际需要的存储空间更大。不同的库采用不同的策略权衡空间的使用和重新分配。...使用STL的三个境界:能用,明理,能扩展 ,那么下面学习vector,也是按照这个方法去学习。 vector学习时一定要学会查看文档。 3....cout << endl; 4.2 reserve 来看看vector的扩容机制: void test_vector2() { size_t sz; vector v; sz =

    23110
    领券