说明:找到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. 用 Flask 来写个轻博客 (9) — M(V)C_Jinja 语法基础快速概览
  2. C六:指针可以比较大小
  3. python图像处理专业博客
  4. python狗图像识别_TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
  5. php yaf.dll,windows下配置nginx+php+yaf的环境
  6. java大整数_java处理大整数
  7. python软件源 临时使用清华源
  8. Java革新大提速 Chrome 54终结YouTube的Flash内嵌技术
  9. 【EMNLP2020】Cross-Thought句子表示预训练
  10. java arraylist_Java 集合框架之 ArrayList 源码图示法简要剖析
  11. 渗透测试/应急演练过程中metasploit制作木马连接失败问题排查
  12. sublime text3怎么运行python代码_Sublime Text3配置在可交互环境下运行python快捷键
  13. Excel基本操作方法
  14. 论文阅读_Show, Attend and Tell: Netural Image Caption Generation with Visual Attention
  15. 【第五篇】Maven系列教程-聚合工程
  16. 现流行的九大前端框架
  17. 【Echarts】- 制作饼图
  18. 罗切斯特大学计算机科学硕士介绍,罗切斯特大学研究生计算机科学专业介绍
  19. 近50年前500部精品电影合集
  20. Android——待办事项(ToDoList)

热门文章

  1. SRM 591 div1 275
  2. WebKit 与 V8 的关系
  3. 设计模式-单件模式(Singleton pattern)
  4. [导入].Net2.0 使用ConfigurationManager读写配置文件
  5. 全国大学生电子设计大赛 赛前准备
  6. Partial Sums ZOJ - 1569
  7. ROS(12):双足机器人开发调研
  8. 【Linux】一步一步学Linux——indent命令(262)
  9. 【Android】Intent介绍及Intent在Activity中的使用方法
  10. mysql分片库分页查询_mysql数据库分页查询优化