说明:找到vector前一半元素中等于some_val的那些,然后在这些元素的前面插入它的2倍。

#include <iostream>
#include <string>
#include <vector>
using namespace std;#define LENGTH  10
typedef  int TYPE;
typedef  vector<TYPE> VECTORTYPE;void print(VECTORTYPE & );int main()
{vector<int> vint{0,1,2,3,4,5,6,6,7,7,8,8,9,10,11,12,12};vector<int>::iterator iter = vint.begin();vector<int>::iterator mid = vint.begin() + vint.size() / 2;int some_val = 6;while(iter != mid){if(*iter == some_val){iter =  vint.insert(iter,2 * some_val);++iter;++ iter;++ mid;}else{++ iter;}}// print(vint);  return 0;
}
void print(VECTORTYPE &vec)
{for(VECTORTYPE::iterator i  = vec.begin() ; i != vec.end() ; ++i){ cout << *i << " ";}cout << endl;return ;
}

运行结果是: r@r-Sys:~/c++/9/review2$ ./123
Segmentation fault (core dumped)

说明迭代器迭代过程中可能越界。检查发现,程序中每次插入元素后,mid就失效了,不能使用了。这是错误点。改正如下:

#include <iostream>
#include <string>
#include <vector>
using namespace std;#define LENGTH  10
typedef  int TYPE;
typedef  vector<TYPE> VECTORTYPE;void print(VECTORTYPE & );int main()
{vector<int> vint{0,1,2,3,4,5};vector<int>::iterator iter = vint.begin();vector<int>::iterator mid = vint.begin() + vint.size() / 2;int some_val = 2;cout << "mid element is:" << *mid << endl;int cnt = 0;while(iter != mid){if(*iter == some_val)h{iter =  vint.insert(iter,2 * some_val);++iter;++ iter;++ cnt;
//每次插入元素后,mid失效,必须重新计算mid,插入几个元素就加几mid = vint.begin() + vint.size() / 2 + cnt;}else{++ iter;}}print(vint);  return 0;
}
void print(VECTORTYPE &vec)
{for(VECTORTYPE::iterator i  = vec.begin() ; i != vec.end() ; ++i){ cout << *i << " ";}cout << endl;return ;
}

c++ Segmentation fault (core dumped) 的一个实例相关推荐

  1. Segmentation fault (core dumped) -llinux系统内存错误报错信息

    目录 1 问题原因 (1)内存访问越界 (2)多线程程序使用了线程不安全的函数. (3)多线程读写的数据未加锁保护. (5)堆栈溢出. 2 使用GDB查看core文件 3 使用GDB调试程序 返回目录 ...

  2. labelImg(pyqt4 )出现错误(segmentation fault(core dumped) )

    在配置labelImg的过程中,最后执行时候出现了一个错误segmentation fault(core dumped) . 解决方法: 将安装的pyqt4的版本从4.11.4降到4.11.3版本,会 ...

  3. mysql core dumped_关于Segmentation fault (core dumped)几个简单问题的整理

    有的程序可以通过编译,但在运行时会出现Segment fault(段错误).这通常都是指针错误引起的.但这不像编译错误一样会提示到文件一行,而是没有任何信息.一种办法是用gdb的step, 一步一步寻 ...

  4. 【ARM】程序快速定位segmentation fault core dumped错误

    1.应用场景 ARM开发过程中经常进程运行着出现段错误,这时候单纯靠加日志打log效率太低.使用gdb的话,由于APP进程太多,生成的core的文件特别大,而且gdb在arm板子也不好单步调试,不太友 ...

  5. dmrman恢复数据报错Segmentation fault (core dumped)

    达梦技术社区:https://eco.dameng.com [场景说明] 使用dmrman恢复数据库,但是这种报错不限于DM数据库场景,其他应用也可能出现 [报错信息] Segmentation fa ...

  6. Segmentation fault (core dumped) 和double free or corruption (out)Aborted (core dumped)

    代码链接:GitHub - gaoxiang12/slambookContribute to gaoxiang12/slambook development by creating an accoun ...

  7. python遇到Segmentation fault (core dumped)调试方法

    python3执行某一个程序时,报Segmentation fault (core dumped)错,但没有告知到底哪里出错,无法查问题 同时在根目录下生成core文件,典型的可以用gdb进行调试.这 ...

  8. Sampler 在数据下沉模式超时; 不同Sampler策略,在非数据下沉模式下,模型训练失败 报错Segmentation fault(core dumped)

    环境版本 mindspore-ascend 1.7.1 背景 我在使用自定义Sampler策略,对imagenet1K数据集进行采样,进行ResNet50训练. Sampler代码如下: class ...

  9. 【QA】Python代码调试之解决Segmentation fault (core dumped)问题

    Python代码调试之解决Segmentation fault 问题 问题描述 排查过程 1. 定位错误, 2. 解决办法 参考资料 问题描述 Python3执行某一个程序时,报Segmentatio ...

最新文章

  1. ITK:提取矢量图像的分量/通道
  2. spring技术小结
  3. 运放放大倍数计算公式_19.运算放大器的特性与应用,不得不掌握的知识点(一)...
  4. Python中布尔类型
  5. Vue2.x中的父组件数据传递至子组件
  6. linux 下的前端编程工具,Prepros Linux版(前端开发工具)
  7. ArcGIS Server(详细介绍)转
  8. ORACLE WebLogic Server 安装部署
  9. 简单说说Java SE、Java EE、Java ME三者之间的区别
  10. 【无向图求最小割集】
  11. Git学习使用方法总结(1)
  12. Java 中获取Exception的详细信息
  13. linux系统管理之系统优化(连载)
  14. 区块链报告会心得体会3000_实习心得体会3000字篇【优秀篇】
  15. Q1财报大超预期,“大象”百度成功“转身”?
  16. 处女座女的爱情黑暗面 水瓶座男不爱你的表现是什么
  17. 字节跳动瞄准千亿互联网医疗蓝海,张一鸣想靠AI算法当“药神”?
  18. Android 注解与注解处理器简述
  19. SVG 的 foreignObject 标签
  20. cmos存储器中存放了_CMOS存储器里放哪些东西

热门文章

  1. php项目技术选型方案,php-现有资源下,项目技术选型求助
  2. [Python图像处理] 三十七.OpenCV直方图统计两万字详解(掩膜直方图、灰度直方图对比、黑夜白天预测)
  3. [Python爬虫] Selenium+Phantomjs动态获取CSDN下载资源信息和评论
  4. 【数据结构与算法】之深入解析“分数到小数”的求解思路与算法示例
  5. 2018/Province_Java_C/2/猴子分香蕉
  6. CSS美化滚动条的方法
  7. Nginx URL 重写
  8. 1128:图像模糊处理
  9. 【Qt】Qt数据库驱动层
  10. 【Linux】一步一步学Linux——cal命令(75)