STL里面出现这个问题,纠结了半天,不知道什么原因。

当然deque iterator not dereferencable。这个是deque出问题,vector、list也可以出问题的。也有很多人提问,但是回答的人很少。

最后还是找到一些答案了。

出现这种情况有两种可能。

第一:访问某一个不存在的位置。

比如:

#include<iostream>
#include <queue>
using namespace std;int main()
{queue<int> x;for(int i = 0;i < 10;i++){x.push(i+1);}while(!x.empty()){cout << x.front() << " ";x.pop();x.push(x.front());x.pop();}cout << endl;return 0;
}

这个例子在百度上面找到的,由于x.front()没有元素访问了 ,倒置出现这种错误。

所以:访问前一定要判断是否存在。

第二:在多线程编程里面,这种问题也出现的比较多。

两个线程同时访问同一个容器,也会导致出现这种情况。

解决办法:关键代码段。

不建议用互斥内核对象是因为关键代码段是用户层的,调用很快,互斥内核对象调用需要从用户态转入内核态!时间很长!

deque iterator not dereferencable 问题相关推荐

  1. map/set iterator not dereferencable

    std::map<int, std::string> map; map[1] = "hello world"; auto iter = map.find(0); pri ...

  2. 平时刷题遇到的一些常见问题

    文章目录 1.头文件 2.输入多组数据(未知长度) 3.常见的输出方式 (1)整体输出 (2)反向输出 (3)控制输出精确度 (4)输出后面无空格(vector) (5)list不能随机访问,可以转换 ...

  3. [C++]Deque with iterator实现细节

    https://blog.csdn.net/stary_yan/article/details/51601523 Deque with iterator实现细节 一.deque的中控器 deque是连 ...

  4. C++ STL学习笔记(5) Vector容器, array容器,deque容器

    动态增长的数组vector,当它放入的元素满了的时候,会自动的扩充内存,但是,在计算机中内存不能够实现原地扩充,因为在申请了一块固定大小的内存之后,这块内存不管有没有用完,他后面的内存都有可能别的内容 ...

  5. C++---deque双端队列

    deque deque双端队列,是C++,STL标准模板库中提供的一种容器. 什么是双队列 队列:是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear) ...

  6. Java中集合遍历方式(List、Set、Queue、Deque、Stack、Map)

    什么是集合?通俗的讲,集合就是存储一组数据的容器,那么,相比较于同样是存储数据的数组,集合的优势就体现在集合的长度是可变的,而数组的长度是固定的.在我们常见的集合中,主要有两大类: Collectio ...

  7. 每日一题(合并表格)

    前言:为了让小伙伴更方便的学习编程语言,小白每天都会分享一道编程题.小白也创建了一个微信公众号,会同步更新题目和相关的视觉领域的知识,如果小伙伴不方便在网页上阅读文章,可以关注微信公众号"小 ...

  8. 《深入理解C++11:C++ 11新特性解析与应用》——3.2 委派构造函数

    3.2 委派构造函数 类别:类作者 与继承构造函数类似的,委派构造函数也是C++11中对C++的构造函数的一项改进,其目的也是为了减少程序员书写构造函数的时间.通过委派其他构造函数,多构造函数的类编写 ...

  9. 【C++】 C++标准模板库(十) 双向队列

    1. C++ Double Ended Queues(双向队列) 双向队列和向量很相似,但是它允许在容器头部快速插入和删除(就像在尾部一样). Constructors 创建一个新双向队列 Opera ...

最新文章

  1. 西门子发布最新版NX软件 助力零件制造的数字化
  2. windows phone7 学习笔记15——Bing Maps
  3. 算法心经.数学的应用.积分的应用
  4. ejb模式_EJB的完整形式是什么?
  5. C++ cin 实现循环读入
  6. 程序员——[小鸟语录]
  7. python判断数据mongodb_python判断mongo是否有数据
  8. 使用 Swiftype 给 Hexo 搭建的博客添加站内搜索功能
  9. 快捷键截屏_win7截图快捷键是什么 win7截图快捷键怎么按
  10. 【开发者笔记】利用ab命令对接口进行压力测试
  11. 无码间串扰的基带传输特性
  12. java查询城市区号_城市查区号示例代码
  13. 《我的世界》Minecraft私服搭建100%成功
  14. 计算机软件高级职称有啥用,计算机软考高级职称有什么用
  15. 2022-2028全球与中国语音疏散系统市场现状及未来发展趋势
  16. 都说DBA 是越老越值钱, 那你是没干过DBA
  17. Java动态追踪技术
  18. Notepad++查看二进制文件——HexEditor插件
  19. E.164号码,E.214号码,E.212号码
  20. XXU邮箱,和客户端同步 pku

热门文章

  1. delphi对比易语言_delphi 2007 vs E语言 vs C#运行速度 - Delphi编程
  2. mysql查询临时表是否存在_[转]SQL判断临时表是否存在
  3. ARM Cortex-M3与Cortex-M4中断相关寄存器
  4. CentOS 7.x防火墙问题
  5. 余弦距离、欧氏距离和杰卡德(Jaccard)相似性度量的比较
  6. Pytorch:PIL 和CV
  7. 使用Weka进行数据挖掘
  8. Problem C: 默认参数:求圆面积
  9. @JVM内存模型(运行时数据区)
  10. 函数声明优先级高于变量赋值