iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++如何使用std::vector容器
  • 122
分享到

C++如何使用std::vector容器

2023-06-20 14:06:45 122人浏览 八月长安
摘要

这篇文章给大家分享的是有关c++如何使用std::vector容器的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言vector实质是C++的一个类,与数组很相似,但是vector的优势是可以动态扩展,不需要考虑

这篇文章给大家分享的是有关c++如何使用std::vector容器的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

前言

vector实质是C++的一个类,与数组很相似,但是vector的优势是可以动态扩展,不需要考虑其内存大小。

定义:

向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。

特性:

顺序序列

顺序容器中的元素按照严格的线性顺序排序。可以通过元素在序列中的位置访问对应的元素。

动态数组

支持对序列中的任意元素进行快速直接访问,甚至可以通过指针算述进行该操作。操供了在序列末尾相对快速地添加/删

除元素的操作。

能够感知内存分配器的(Allocator-aware)

容器使用一个内存分配器对象来动态地处理它的存储需求。

1. vector的构造函数原型:

    vector<T> data; //使用模板类,默认构造函数

    vector(data.begin(),data.end()); //将data的【begin(),end())区间中的元素拷贝给本身,注意是数学中的前闭后开 区间

    vector(n,elem); //将n个elem元素拷贝给本身

    vector(const vector &data); //拷贝构造

#include <iOStream>#include <vector> using namespace std; void fun_print_vector(std::vector<int>&data){    //std::vector<int>::iterator it; //可以用auto代替。    for(auto it_data = data.begin();it_data != data.end();it_data++){        std::cout << *it_data << " " << std::endl;    }}void fun_vector(){    vector<int> data1; //默认构造    data1.push_back(1);    data1.push_back(2);    data1.push_back(3);    fun_print_vector(data1); //打印:1 2 3      vector<int> data2(data1.begin(),data1.end()); //通过区间进行构造    fun_print_vector(data2); //打印:1 2 3      vector<int> data3(4,1);//4个1构造    fun_print_vector(data3); //打印:1 1 1 1      vector<int> data4(data3); //拷贝构造    fun_print_vector(data4); //打印:1 1 1 1  }

2. vector的赋值函数原型:

vector& operator=(cost vector &data); //重载操作符

vector& assign(beg,end); //将[ beg,ed )区间中的数据拷贝赋值给本身

vector& assign(n,elem); //将n个elem拷贝赋值给本身

#include <iostream>#include <vector> using namespace std; void fun_print_vector(std::vector<int>&data){    //std::vector<int>::iterator it; //可以用auto代替。    for(auto it_data = data.begin();it_data != data.end();it_data++){        std::cout << *it_data << " " << std::endl;    }}void fun_vector(){    vector<int> data1;    for(int i = 0;i < 6;i++){        data1.push_back(i);    }    fun_print_vector(data1); //打印 0 1 2 3 4 5     vector<int> data2;    data2 = data1;    fun_print_vector(data2); //打印 0 1 2 3 4 5     vector<int> data3;    data3.assign(data1.begin(),data1.end());    fun_print_vector(data3); //打印 0 1 2 3 4 5     vector<int> data4;    data3.assign(3,6);    fun_print_vector(data4); //打印 6 6 6}

3. vector的容量和大小函数原型:

empty(); //判断容器是否为空

capacity(); //容器的容量    capacity一定会大于等于size

size(); //返回容器中元素的个数

resize(int num); //重新指定容器的长度为num,若容器变长,则以默认值填充新的位置;若容器变短,则末尾超出的元素被删除

resize(int num,elem); //重新指定容器的长度为num,若容器变长,则以elem数值填充新的位置;若容器变短,则末尾超出的元素被删除

#include <iostream>#include <vector> using namespace std; void fun_print_vector(std::vector<int>&data){    //std::vector<int>::iterator it; //可以用auto代替。    for(auto it_data = data.begin();it_data != data.end();it_data++){        std::cout << *it_data << " " << std::endl;    }}void fun_vector(){    vector<int> data1;    for(int i = 0;i < 6;i++){        data1.push_back(i);    }    fun_print_vector(data1); //打印 0 1 2 3 4 5     if(data1.empty() == true){        std::cout << "该容器是空" << std::endl;    }else{        std::cout << "该容器不是空" << std::endl;        std::cout << "data1.capacity:" << data1.capacity() << std::endl;        std::cout << "data1.size:" << data1.size() << std::endl;    }    data1.resize(10); //填充默认值0    fun_print_vector(data1); //打印 0 1 2 3 4 5 0 0 0 0    data1.resize(13,8); //填充数值8    fun_print_vector(data1); //打印 0 1 2 3 4 5 0 0 0 0 8 8 8    data1.resize(4);    fun_print_vector(data1); //打印 0 1 2 3}

4. vector的插入和删除函数原型:

push_back(elem); //尾部插入元素elem

pop_back(); //删除最后一个元素

insert(const_iterator pos, elem); //迭代器指向位置pos插入元素elem

insert(const_iterator pos, int count,elem); //迭代器指向位置pos插入count个元素elem

erase(const_iterator pos); //删除迭代器指向的元素

erase(const_iterator start,const_iterator end); //删除迭代器start到end之间的元素

clear(); //删除容器中所有元素

#include <iostream>#include <vector> using namespace std; void fun_print_vector(std::vector<int>&data){    //std::vector<int>::iterator it; //可以用auto代替。    for(auto it_data = data.begin();it_data != data.end();it_data++){        std::cout << *it_data << " " << std::endl;    }}void fun_vector(){    vector<int> data1;    for(int i = 0;i < 6;i++){        data1.push_back(i);    }    fun_print_vector(data1); //打印 0 1 2 3 4 5    data1.pop_back(); //尾删    fun_print_vector(data1); //打印 0 1 2 3 4    data1.insert(data1.begin(),22); //迭代器位置插入一个22    fun_print_vector(data1); //打印 22 0 1 2 3 4    data1.insert(data1.begin(),3,7); //迭代器位置插入三个22    fun_print_vector(data1); //打印 7 7 7 22 0 1 2 3 4     data1.erase(data1.begin()); //迭代器位置删除    fun_print_vector(data1); //打印 7 7 22 0 1 2 3 4    data1.erase(data1.begin(),data1.end()); //迭代器位置 区间 删除    fun_print_vector(data1); //打印 空     data1.clear(); //清空容器    fun_print_vector(data1); //打印 空 }

5. vector的存取操作函数原型:

at(int idx); //返回索引idx所指的数据

operator []; //返回索引idx所指的数据

front(); //返回容器的第一个数据元素

back(); //返回容器的最后一个数据元素

#include <iostream>#include <vector> using namespace std; void fun_print_vector(std::vector<int>&data){    //std::vector<int>::iterator it; //可以用auto代替。    for(auto it_data = data.begin();it_data != data.end();it_data++){        std::cout << *it_data << " " << std::endl;    }}void fun_vector(){    vector<int> data1;    for(int i = 0;i < 6;i++){        data1.push_back(i);    }     //利用[]方式访问vector中的元素    for(int j = 0;j<data1.size();j++){        std::cout << data1[j] << " " << std::endl;    }    //利用at方式访问vector中的元素    for(int j = 0;j<data1.size();j++){        std::cout << data1.at(j) << " " << std::endl;    }     std::cout << "第一个元素是:" << data1.front() << std::endl;    std::cout << "最后一个元素是:" << data1.back() << std::endl; }

6. vector的呼唤容器函数原型:

swap(vec); //将vecy与本身 两个容器中的元素互换

#include <iostream>#include <vector> using namespace std; void fun_print_vector(std::vector<int>&data){    //std::vector<int>::iterator it; //可以用auto代替。    for(auto it_data = data.begin();it_data != data.end();it_data++){        std::cout << *it_data << " " << std::endl;    }}void fun_vector(){    vector<int> data1;    for(int i = 0;i < 6;i++){        data1.push_back(i);    }    fun_print_vector(data1); //打印 0 1 2 3 4 5     vector<int> data2;    for(int i = 6;i > 0;i++){        data2.push_back(i);    }    fun_print_vector(data2); //打印 6 5 4 3 2 1      data1.swap(data2);    fun_print_vector(data1); //打印 6 5 4 3 2 1     fun_print_vector(data2); //打印 0 1 2 3 4 5  }

感谢各位的阅读!关于“C++如何使用std::vector容器”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: C++如何使用std::vector容器

本文链接: https://www.lsjlt.com/news/297264.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++如何使用std::vector容器
    这篇文章给大家分享的是有关C++如何使用std::vector容器的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言vector实质是C++的一个类,与数组很相似,但是vector的优势是可以动态扩展,不需要考虑...
    99+
    2023-06-20
  • C++容器Vector如何使用
    今天小编给大家分享一下C++容器Vector如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Vector简介Vecto...
    99+
    2023-06-30
  • C++入门笔记之std::vector容器详解
    目录前言1. vector的构造函数原型: 2. vector的赋值函数原型:3. vector的容量和大小函数原型:4. vector的插入和删除函数原型:5. vector的存取...
    99+
    2024-04-02
  • c++中std::vector的作用是什么
    在C++中,std::vector是STL(Standard Template Library)中的一个容器类,用来存储一组元素。它...
    99+
    2024-03-12
    c++
  • C++STL标准库std::vector的使用详解
    目录1. 简介2. 使用示例3. 构造、析构、赋值3.1 std::vector::vector 构造函数3.2 std::vector::~vector 析构函数3.3 std::...
    99+
    2024-04-02
  • C++STL中vector容器的使用
    目录一、vector(1)区分size()和capacity()(2)迭代器失效(3)区分const_iterator和const iterator(4)区分reserve()和re...
    99+
    2024-04-02
  • C++ 容器 Vector 的使用方法
    目录Vector简介Vector 与数组创建 vector 的各种方法访问 vector 的元素删除元素前言: 我们都是带着问题学习,假设一个任务,也可以理解为一个问题,通过找解决方...
    99+
    2024-04-02
  • C++11 std::function和std::bind如何使用
    这篇文章主要介绍了C++11 std::function和std::bind如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++11 std::function和std::bind如...
    99+
    2023-07-05
  • C++中std::conditional如何使用
    本篇内容介绍了“C++中std::conditional如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!std::conditiona...
    99+
    2023-07-02
  • C++中STL标准库std::vector怎么用
    小编给大家分享一下C++中STL标准库std::vector怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. 简介vector 是表示可以改变大小的数组的...
    99+
    2023-06-29
  • C++的std::visit如何使用
    这篇文章主要介绍“C++的std::visit如何使用”,在日常操作中,相信很多人在C++的std::visit如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++的std::visit如何使用”的疑...
    99+
    2023-06-29
  • 如何使用C++的vector
    本篇内容介绍了“如何使用C++的vector”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!创建对象在C++中,官方文档所给的创建对象方法有4...
    99+
    2023-06-25
  • c++ vector的push_back如何使用
    在C++中,vector是一种动态数组,可以根据需要动态增长或缩小。push_back()函数用于在vector的末尾添加一个新元素...
    99+
    2024-04-02
  • C++11的std::future对象如何使用
    这篇“C++11的std::future对象如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C++11的std::fu...
    99+
    2023-07-05
  • C++怎么创建vector容器
    这篇文章主要介绍“C++怎么创建vector容器”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++怎么创建vector容器”文章能帮助大家解决问题。vector基本概念功能:vector数据结构和...
    99+
    2023-07-02
  • C++顺序容器(vector、deque、list)的使用详解
    目录一:STL(Standard Template Library),即标准模板库,是一个高效的C++程序库二:STL组件三:容器四:类型成员五:迭代器六:顺序容器七:顺序容器--向...
    99+
    2024-04-02
  • C++示例讲解vector容器
    目录vector基本概念创建 vector 的各种方法vector容器的构造vector赋值操作vector容量和大小vector容器插入和删除vector数据存取vector互换容...
    99+
    2024-04-02
  • 【C++】vector的使用
    1、vector的使用 #define _CRT_SECURE_NO_WARNINGS 1#include #include using namespace std;void Test1(){vector v1;vector v2(10,...
    99+
    2023-08-30
    c++
  • C++标准模版库之vector容器怎么使用
    今天小编给大家分享一下C++标准模版库之vector容器怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。vector容...
    99+
    2023-07-05
  • C++Vector容器常用函数接口详解
    目录一、基础框架二、迭代器实现三、size capacity resize reserve四、insert,erase五、pop_back,push_back六、operator[]...
    99+
    2022-11-13
    C++ Vector容器 C++ Vector函数接口
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作