c++ vector使用

C++之vector深度剖析 C++之vector深度剖析1.vector的介绍及使用1.1 vector的介绍1.2 vector的使用1.2.1 vector的定义1.2.2 vector iterator 的使用1.2.3 vector 空间增长问题1.2.3 vector 增删查改1.2.4 vector 迭代器失效问题2.vector深度剖析及模拟实现 1.vector的介绍及使用 1.1 vector的介绍 vector是表示可变大小数组的序列容器。 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可 阅读详情

转自:

1、https://www.cnblogs.com/KyleDeng/p/9243666.html

2、https://blog.youkuaiyun.com/mr_sandman1994/article/details/80252559

 

变量声明

vector<vector<int> > 变量名;

添加行

vector<vector<int> > v2d;

for(int i=0;i<n;i++)

{
  v2d.push_back(vector<int>());//往v2d里添加行

}

v2d.pop_back();//删除一行,由后向前。

 

vector<vector <int> > array(3);//定义了行数为3列数不定的二维数组

array.size()//返回二维数组的行数

array[0].size()//返回二维数组第一行的列数

遍历二维vector中的元素

int m=v2d.size();//行数不定所以要求出v2d的长度。

for(int i=0;i<m;i++)

{

  for(int j=0;j<n;j++)

  {

    v2d[i][j]=0;

  }

}//依次访问v2d内的元素

#include<bits/stdc++.h>
using namespace std;
vector<vector<int> > v2d;
int main()
{
    for(int i=0;i<5;i++)
    {
        v2d.push_back(vector<int>());//不断往v2d里加行 
    }
    for(int i=0;i<v2d.size();i++)//行 
    {
        for(int j=0;j<5;j++)//添加5列 
        { 
            v2d[i].push_back(i*j);
        }
    }
    v2d.pop_back();
    for(int i=0;i<v2d.size();i++)
    {
        for(int j=0;j<5;j++)
        {
            cout<<v2d[i][j]<<" ";//使用下标访问 
        }
        cout<<endl;
    }
    return 0;
}

二维向量的属性与一维向量相同
  1>. a.size()                 //获取向量中的元素个数
    2>. a.empty()                //判断向量是否为空
    3>. a.clear()                //清空向量中的元素
    4>. 复制
        a = b ;            //将b向量复制到a向量中
    5>. 比较
        保持 ==、!=、>、>=、<、<= 的惯有含义 ;
        如: a == b ;    //a向量与b向量比较, 相等则返回1
    6>. 插入 - insert
        ①、 a.insert(a.begin(), 1000);            //将1000插入到向量a的起始位置前
        ②、 a.insert(a.begin(), 3, 1000) ;        //将1000分别插入到向量元素位置的0-2处(共3个元素)        
        ③、 vector<int> a(5, 1) ;
            vector<int> b(10) ;
            b.insert(b.begin(), a.begin(), a.end()) ;        //将a.begin(), a.end()之间的全部元素插入到b.begin()前
    7>. 删除 - erase
        ①、 b.erase(b.begin()) ;                     //将起始位置的元素删除
        ②、 b.erase(b.begin(), b.begin()+3) ;        //将(b.begin(), b.begin()+3)之间的元素删除
    8>. 交换 - swap
        b.swap(a) ;          //a向量与b向量进行交换     
    9>. a.back();           //获取a向量最后一个元素
    10>. a.front            //获取a向量的第一个元素    
    11>. a.pop_back();      //删除a向量的最后一个元素
    12>.a.capacity(); //返回a在内存中总共可以容纳的元素个数
    13>.a.rezize(10); //将a的现有元素个数调至10个,多则删,少则补,其值随机
    14>.a.rezize(10,2); //将a的现有元素个数调至10个,多则删,少则补,其值为2
//使用下面的函数需要包涵头文件
#include<algorithm>
(1)sort(a.begin(),a.end()); //对a中的从a.begin()(包括它)到a.end()(不包括它)的元素进行从小到大排列
(2)reverse(a.begin(),a.end()); //对a中的从a.begin()(包括它)到a.end()(不包括它)的元素倒置,但不排列,如a中元素为1,3,2,4,倒置后为4,2,3,1
(3)copy(a.begin(),a.end(),b.begin()+1); //把a中的从a.begin()(包括它)到a.end()(不包括它)的元素复制到b中,从b.begin()+1的位置(包括它)开始复制,覆盖掉原有元素

(4)find(a.begin(),a.end(),10); //在a中的从a.begin()(包括它)到a.end()(不包括它)的元素中查找10,若存在返回其在向量中的位置

 

cpp中vector的使用 C++中vector的两种访问方式v[]和v.at()都能访问元素且都不能越界,但存在重要区别:v[]不进行边界检查,越界时返回错误引用可能导致程序崩溃;v.at()会进行边界检查,越界时抛出异常,可通过try-catch捕获使程序继续运行。实际使用中v[]更常见但风险较高,v.at()更安全但性能稍低。 阅读详情

相关推荐

C++vector的使用总结及常用vector操作

C++ vector类为内置数组提供了一种替代表示,与string类一样 vector 类是随标准 C++引入的标准库的一部分,使用时需包含头文件: #include C++ vector类有两种使用方式: 第一种:STL方式 vector text; 1. 我们向 vector 中插入元素,而不再是索引元素,以及向元素赋值,例如 push_back()操作,就是在 vector 的后

程序猿老樊的博客 13万+

c++ vector 用法总结

vector 是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。vector 是C++ STL的一个重要成员,使用它时需要包含头文件:#include&lt;vector&gt;; 一、vector 的初始化:可以有五种方式,举例说明如下: (1) vector&lt;int&gt; a(10); //定义了10个整型元素的向量(尖括号中为元素类型名,它可以是任何合法的数据类...

cindywry的博客 2万+

Ubuntu22.04 网络图标消失与连接故障排查指南(附实战修复流程)

本文详细介绍了Ubuntu22.04系统中网络图标消失与连接故障的排查与修复方法。通过ifconfig、dhclient等命令诊断问题,提供从紧急恢复网络连接到深度排查的完整解决方案,帮助用户快速恢复网络功能并预防类似问题再次发生。

weixin_28481133的博客 287

C++ 向量(vector)

1. vector介绍 向量 vector 是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器。 与string相同, vector 同属于STL(Standard Template Library, 标准模板库)中的一种自定义的数据类型, 可以广义上认为是数组的增强版 ,与数组相比,vector就是一个可以不用再初始化就必须制定大小的边长数组,当然了,它还有许多高级功能。 ...

february_的博客 2万+

Python 包安装报错:ERROR: No matching distribution found for xxx 的全面排查指南

本文全面解析Python包安装时常见的`ERROR: No matching distribution found for xxx`报错。从检查包名拼写、网络与镜像源配置,到深入分析Python版本、操作系统等环境兼容性问题,提供了从简到繁的排查步骤。文章还介绍了使用`pip debug`、`-v`参数等高级诊断工具,并给出了更换包管理器、使用Docker等终极解决方案,帮助开发者高效解决依赖安装难题。

p8q9r0的博客 895

Zemax 中的 LED 阵列模型

这些光线是所有光线的子集,用于布局可视化,而不是详细分析。X 和 Y 散度(αx 和 αy)以度为单位,以不同的方式设置为 6 度和 12 度。每个 LED 都以朗伯模式(广角分布)发光,尽管有些 LED 具有内置光学元件,用于更窄或更聚焦的光束。,具体取决于这些类别中使用的半导体材料。LED 阵列由多个发光二极管 (LED) 组成,这些二极管以特定模式或配置排列,以实现均匀照明、更高强度或特定照明特性。如果数据的存在更改为“辐射强度”,则它以弧度为单位显示每个立体角的功率,作为探测器上入射角的函数。

jkh920184196的博客 1594

详解c++---vector介绍

c++ vector库中函数讲解

qq_68695298的博客 1万+

基于Codex与Skills的学术研究自动化全流程实战指南

还在为海量文献下载、整理、阅读和综述写作而头疼吗?面对堆积如山的PDF,你是否感到无从下手?从选题、文献检索、到写作、绘图、润色,再到应对AI检测和审稿意见,学术研究的每一步都充满挑战。本文将为你带来一套堪称“王炸组合”的解决方案: Codex + Skills 。这不是简单的工具介绍,而是一套从零开始,覆盖学术研究全流程的保姆级实战教程。我们将手把手教你如何安装、配置,并利用强大的Skills(技能)自动化处理文献下载管理、高效撰写综述、生成专业图表、智能润色降重,直至应对审稿。无论你是科研新手还是希望提

weixin_29041195的博客 761

C++关于vector的详细介绍

本文介绍了C++中vector的详细内容,其中关于vector的迭代器失效问题着重进行讲解。

写博客记录分享学习笔记 1万+

基于MediaPipe的智能俯卧撑计数与姿势矫正系统

在现代健身和体能训练中,俯卧撑是最基础也是最有效的自重训练动作之一。然而,许多人在进行俯卧撑训练时常常存在姿势不正确、计数不准确等问题。本文将介绍如何利用计算机视觉和姿态估计技术,开发一个智能的俯卧撑计数与姿势矫正系统。

qq_36224726的博客 916

【图像去噪】论文复现:超分思想助力荧光显微图像自监督去噪!N2SR的Pytorch源码复现,图文详细教程跑通源码,框架结构原理示意图与代码对应,注释详细,补充三个实用功能代码!

论文题目:Noise2SR: Learning to Denoise from Super-Resolved Single Noisy Fluorescence Image —— Noise2SR:从超分辨率单噪声荧光图像中学习去噪【图像去噪】论文精读:Noise2SR: Learning to Denoise from Super-Resolved Single Noisy Fluorescence Image(N2SR)N2SR框架结构和原理都比较简单,创新点是加入超分,有很多类似的自监督框架;

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 631

C++中b.cpp访问a.cpp中的vector<struct>变量 全局vector变量

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma...

koko的博客 1759

OpenClaw第2章:快速安装

本章将手把手教你安装 OpenClaw。

Maynor的博客 3236

【C++游记】Vector的使用和模拟实现

构造函数声明接口说明vector()无参数构造构造并初始化n个val拷贝构造使用迭代器进行初始化构造今日C++到这里就结束啦,如果觉得文章还不错的话,可以三连支持一下。感兴趣的宝子们欢迎持续订阅小枫の主页还有更多生动有趣的文章,欢迎宝子们去点评鸭~C++的学习很陡,时而巨难时而巨简单,希望宝子们和小枫一起坚持下去​。

枫の大一分享 1839

AI辅助需求分析与提示词生成

文章标题 《AI辅助需求分析与提示词生成》 关键词 人工智能 需求分析 提示词生成 深度学习 机器学习 强化学习 数学模型 系统架构

AI天才研究院 1212

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【C++】vector模拟实现的测试

对我们模拟实现的vector进行测试,然后利用vector相关知识解决问题

s_little_monster的博客 9480

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

cpp中的vector

c语言中的顺序表也就是cpp中的vector,但vector用指针的方式存储数据,同时vector中可以同时存储多个自定义类型例如:vector或者vector来书写对象,现在我将带你了解基本的底层实现。

m0_74202684的博客 610

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C++ vector的使用总结及常用vector操作

一、介绍 C++ vector类为内置数组提供了一种替代表示,与string类一样 vector 类是随标准 C++引入的标准库的一部分,使用时需包含头文件: #include <vector> 二、使用方式 C++ vector类有两种使用方式: 第一种:STL方式 vector< string > text; 1. 我们向 vector 中插入元素,而不...

学之知之的博客 7345

cpp的vector类

本篇将讲述类中的各种重要和常用函数(begin()、end()、rbegin()、rend()cbegin()、cend() 、crbegin()、crend()、size()、resize()、capacity()、reserve()、empty()、push_back ()、pop_back()、insert()、erase()、clear()。

2401_84018574的博客 1625

C++的vector的使用

本文为学习C++的阅读、学习笔记,如有错漏请联系作者。 1. 基本概念 vector是一个类模板,在C++中使用模板可以编写一个类定义或函数定义,而用于多种不同的数据类型。vector是同一种类型的对象的集合,由于可以包含其他对象的特性,所以也将vector称为容器。 2. 使用方法 要使用vector类模板,需要添加头文件,并使用using声明: #include <vector> using std::vector; 关于使用using声明,避免在...

qq_38609565的博客 1万+

c++实现Vector

//Vector.h extern const double uZero; class Vector3 { float x, y, z; public: Vector3() { x = 0; y = 0; z = 0; }; Vector3(float x1, float y1, float z1) { x = x1, y = y1, z = z1; } Vector3 operato...

piyixia的博客 456

[cpp] Vector

vector是一种类模板,它表示对象的集合。

happily code 481

C++ vector的用法

vector 是C++ STL的一个重要成员,使用它时需要包含头文件: #include<vector>; 一、vector 的初始化:可以有五种方式,举例说明如下: (1) vector<int> a(10); //定义了10个整型元素的向量(尖括号中为元素类型名,它可以是任何合法的数据类型),但没有给出初值,其值是不确定的。 (2)vector&...

qinyuehong的博客 4万+

Cpp進階:Vector 向量

Cpp 進階:Vector 向量 文章目錄Cpp 進階:Vector 向量簡介參考正文Overview 總覽Printer 輔助函數Declaration 變量聲明構造函數語法Access 訪問元素(查、改)訪問元素(查、改)相關語法Insert & Erase 增刪元素(增、刪)增刪元素(增、刪)相關語法Capacity 容量容量相關語法Iterator 迭代獲取迭代器語法結語 Cpp 進階:Vector 向量 簡介 參考 正文 Overview 總覽 Printer 輔助函數

超悠閒的博客 704

C++实现vector类

C++实现建议Vector类

qq_21593933的博客 705

C++ vector

目录 1.vector的介绍及使用 1.1 vector的介绍 1.2 vector的使用 1.2.1 vector的定义 1.2.2vector itertor的使用 1.2.3 vector空间增长问题 1.2.3vector增删查改 1.2.4 vector 迭代器失效问题。(重点) 1.2.5 vector 在OJ中的使用。(见博客) 2.vector深度剖析及模拟实现 2.1使用memcpy拷贝问题 2.2 对bit::vector核心接口的测试 2.3 ...

m0_61548909的博客 2万+
上一篇: Mysql配置问题
下一篇: matlab打包为Java程序出错
pluto21
博客等级 码龄12年 306粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值