vector使用过程中的一些坑(持续更)

简介: vector使用过程中的一些坑(持续更)

vector使用过程中的一些坑(持续更)

1.vector为空时不能通过下标标赋值,如:

#include <iostream>
#include <vector>
using namespace std;
int main()
{
    vector<int> v;
    v[0] = 1;
    return 0;
}

v初始为空所以出错

但只要初始vector有容量通过下标赋值就可以:

#include<bits/stdc++.h>
using namespace std;
int main()
{
  vector<int>a(1);
  a[2]=1;
  cout<<a[2];
}

就能成!

2.vector通过数组下标访问时注意vector为空时不能通过下标标赋值,如:

#include<bits/stdc++.h>
using namespace std;
int main()
{
  vector<int>a;
  a[2]=1;
  cout<<a[2];
}

v初始为空所以出错

但只要初始vector有容量通过下标赋值就可以:

#include<bits/stdc++.h>
using namespace std;
int main()
{
  vector<int>a(1);
  a[2]=1;
  cout<<a[2];
}

3.vector通过数组下标访问时注意这个元素是存在的,不然会出现运行内存错误,如:

#include<bits/stdc++.h>
using namespace std;
int main()
{
  vector<int>a(10);
  a[2]=1;
  a[10]=1;
  cout<<a[10];
}

a[10]是越界的,这段代码访问了vector末尾以后的元素,这将可能导致很危险的结果,但系统不会报错。

建议使用at函数访问如:

vector<int> v(10,0);
cout<<v.at(11)<<endl;

以下的代码将更加安全,取代试图访问内存里非法值的作法,at() 函数能够辨别出访问是否越界并在越界的时候中止程序。

4.创建类似二维数组的vector:

vector<int> v[N];

它创建了一个由第1个类型的N个vector组成的静态数组。

v[0]现在是一个和v[1]完全不同的vector。注意,v[0]是vector而不是vector中的元素。如果我们想向第1个vector push一个值,可以通过 v[0].push_back(val)。为了访问那个元素我们可以通过 v[0][0]来访问(类似2维矩阵)。

例:

vector <int> v2[n]; 
    v2[0].push_back(1); 
    v2[0].push_back(20); 
    cout << '\n'; 
    for(int i = 0; i < v2[0].size(); i++ ) 
       cout << v2[0][i] << " ";

**5.**vector容器可以通过还可以通过以下2种构造函数初始化:

vector<int> v(v2);
vector<int> v = v2;

v从v2 复制数据。

目录
相关文章
|
机器学习/深度学习 人工智能 监控
机器视觉:技术原理、应用与未来发展
机器视觉:技术原理、应用与未来发展
|
4月前
|
人工智能 开发框架 自然语言处理
重磅!JBoltAI V4.3发布:AgentRAG让企业A
JBoltAI V4.3发布!首创AgentRAG智能问答框架,突破传统RAG瓶颈,实现“理解→规划→检索→评估→再检索→生成”全链路主动推理。新增执行步骤可视化,提升可调试性与可信度,助力Java企业零重构落地AI智能体应用。(239字)
216 2
|
XML JSON 前端开发
Bpmn.js 进阶指南之原理分析与模块改造(下)
Bpmn.js 进阶指南之原理分析与模块改造
2752 2
|
机器学习/深度学习 PyTorch 数据处理
数据增强与 DataLoader:提升模型泛化能力的策略
【8月更文第29天】在深度学习中,数据的质量和数量对于模型的性能至关重要。数据增强是一种常用的技术,它通过对原始数据进行变换(如旋转、缩放、裁剪等)来生成额外的训练样本,从而增加训练集的多样性和规模。这有助于提高模型的泛化能力,减少过拟合的风险。同时,`DataLoader` 是 PyTorch 中一个强大的工具,可以有效地加载和预处理数据,并支持并行读取数据,这对于加速训练过程非常有帮助。
1499 1
|
人工智能 运维 监控
从大规模恶意攻击 DeepSeek 事件看 AI 创新隐忧:安全可观测体系建设刻不容缓
本文探讨了中国大模型DeepSeek在全球范围内的成功及其面临的网络安全挑战。DeepSeek以低成本、高性能的特点迅速走红,甚至超越ChatGPT,但同时也遭受了大规模恶意攻击,如DDoS和密码暴力破解。文章分析了这些攻击对AI行业的影响,并提出通过阿里云构建安全可观测体系的解决方案,包括流量监控、日志审计与异常检测等,为AI技术的安全发展提供保障。
702 1
|
网络协议 算法 网络性能优化
一文带你了解tcp协议
一文带你了解tcp协议
|
存储 算法 Android开发
【算法基础】拓扑排序及实战
在图论中,如果一个有向图从任意顶点出发无法经过若干条边回到该点,则这个图是一个**有向无环图(DAG,Directed Acyclic Graph)**
1707 0
|
SQL 数据处理 数据库
二叉树的创建、插入和删除
二叉树的创建、插入和删除
235 1
|
机器学习/深度学习 算法 C语言
【深度学习】优化算法:从梯度下降到Adam
【深度学习】优化算法:从梯度下降到Adam
895 1

热门文章

最新文章