当前位置: 首页 > news >正文

C++中vec.size()-1的坑

问题描述:如下代码,

#include <iostream>
#include <vector>using namespace std;int main() {vector<int> vec = {};for (int i = 0; i < vec.size() - 1; ++i) {cout << "i = " << i << ", vec[i] = " << vec[i] << endl;}return 0;
}

运行,系统报Segmentation Fault。

在这里插入图片描述
调试代码如下,

在这里插入图片描述

根因分析如下

vector的size()方法返回的size_t类型,size_t是无符号整数类型,它的范围取决于编译器和操作系统的位数。在大多数平台上,size_t的范围通常是0到4294967295(32位操作系统)或0到18446744073709551615(64位操作系统)。

解决方法1:将i < vec.size() - 1修改为i + 1 < vec.size()

在这里插入图片描述

解决方法2:先定义整型变量int n = vec.size();然后将i < vec.size() - 1修改为i < n - 1

在这里插入图片描述

http://www.lryc.cn/news/213641.html

相关文章:

  • Flask Shell 操作 SQLite
  • Mybatis—XML配置文件、动态SQL
  • excel求差公式怎么使用?
  • 高效分割分段视频:提升您的视频剪辑能力
  • 【c++|opencv】二、灰度变换和空间滤波---2.直方图和均衡化
  • 【Windows】线程同步之信号量(Semaphores)
  • 二叉树问题——前中后遍历数组构建二叉树
  • Java保留n位小数的方法(超简洁)
  • JavaEE-博客系统1(数据库和后端的交互)
  • 【unity/vufornia】Duplicate virtual buttons with name.../同一个ImageTarget上多个按钮失灵
  • Apache ActiveMQ 远程代码执行漏洞复现(CNVD-2023-69477)
  • 项目管理-科学管理基础-线性规划介绍及例题
  • 如何利用自定义数据对象(元数据)实现全场景身份数据治理
  • 腾讯云轻量级服务器哪个镜像比较好?
  • SC密封件的材料成分
  • 常用 sqlite3 命令
  • SpringMVC Day 08 : 文件上传下载
  • 【热带气旋】基本介绍:定义、标准、结构等
  • ue5 右击.uproject generator vs project file 错误
  • 0X01
  • centos7 配置搭建 wordpress 博客
  • 掌握Android自定义View与独家优化技巧
  • 【T3】彻底关闭服宝
  • P2359 三素数数 , 线性dp
  • 【c语言】用C语言设计一个环形缓冲区。当环形缓冲区有一半占用未处理时,提示使用了50%.
  • Python的web自动化学习(四)Selenium的显性等待(元素定位)
  • X3DAudio1_7.dll是什么,解决计算机找不到X3DAudio1_7.dll文件的方法
  • 【Python】海龟图turtle.color() 方法有关RGB颜色设置详解
  • 中科院上高院,协鑫,和数“能源数字化智能管控”合作项目开启
  • 在Mac上安装MongoDB 5.0