欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++ STL list 遍歷刪除出錯解決方案

 更新時間:2016年12月12日 11:51:10   作者:zhouyongku  
這篇文章主要介紹了C++ STL list 遍歷刪除出錯解決方案的相關(guān)資料,這里對出錯進行分析,并給出正確的解決方法,需要的朋友可以參考下

C++ STL list 遍歷刪除崩潰

錯誤用法一

下面這種用法會在for的地方崩潰,分析 第一次for循環(huán)的時候 it=0,當t.erase(it)執(zhí)行完成之后 it就變成了 -17891602
表明it不能再作為迭代器進行運算,自然會報錯。

#include <map> 
#include <list> 
using namespace std; 
typedef std::list<int > TESTLIST; 
int _tmain(int argc, _TCHAR* argv[]) 
{ 
  TESTLIST t; 
  for (int i = 0; i < 10;i++) 
  { 
    t.push_back(i); 
  } 
 
  for (TESTLIST::iterator it = t.begin(); it != t.end();) 
  { 
    t.erase(it); 
    it++; 
  } 
 
  return 0; 
} 

錯誤用法二

下面這種用法出現(xiàn)的錯誤與錯誤一相同

#include <map> 
#include <list> 
using namespace std; 
typedef std::list<int > TESTLIST; 
int _tmain(int argc, _TCHAR* argv[]) 
{ 
  TESTLIST t; 
  for (int i = 0; i < 10;i++) 
  { 
    t.push_back(i); 
  } 
 
  for (TESTLIST::iterator it = t.begin(); it != t.end();it++) 
  { 
    t.erase(it); 
  } 
 
  return 0; 
} 

錯誤用法三

下面這種用法以為不it++就不會有事,其實他們的錯誤都一樣,那就是t.erase(it)之后 it已經(jīng)是非迭代量,自然不能作為迭代操作

#include "stdafx.h" 
 
#include <map> 
#include <list> 
using namespace std; 
typedef std::list<int > TESTLIST; 
int _tmain(int argc, _TCHAR* argv[]) 
{ 
  TESTLIST t; 
  for (int i = 0; i < 10;i++) 
  { 
    t.push_back(i); 
  } 
 
  for (TESTLIST::iterator it = t.begin(); it != t.end();) 
  { 
    t.erase(it); 
  } 
 
  return 0; 
} 

 正確用法

#include <map> 
#include <list> 
using namespace std; 
typedef std::list<int > TESTLIST; 
int _tmain(int argc, _TCHAR* argv[]) 
{ 
  TESTLIST t; 
  for (int i = 0; i < 10;i++) 
  { 
    t.push_back(i); 
  } 
 
  for (TESTLIST::iterator it = t.begin(); it != t.end();) 
  { 
    t.erase(it++); 
  } 
 
  return 0; 
} 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • C++中訪問權(quán)限的示例詳解

    C++中訪問權(quán)限的示例詳解

    C++通過 public、protected、private 三個關(guān)鍵字來控制成員變量和成員函數(shù)的訪問權(quán)限(也稱為可見性),下面這篇文章主要給大家介紹了關(guān)于C++中訪問權(quán)限的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • Win10+VS2017新CUDA項目配置教程

    Win10+VS2017新CUDA項目配置教程

    這篇文章主要為大家詳細介紹了Win10+VS2017新CUDA項目配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • C語言求2的n次方多種方法總結(jié)

    C語言求2的n次方多種方法總結(jié)

    這篇文章主要給大家介紹了關(guān)于C語言求2的n次方多種方法的相關(guān)資料,求2的N次冪是一個常用的功能,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-10-10
  • C++實現(xiàn)LeetCode(88.混合插入有序數(shù)組)

    C++實現(xiàn)LeetCode(88.混合插入有序數(shù)組)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(88.混合插入有序數(shù)組),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C語言中宏定義的妙用方法

    C語言中宏定義的妙用方法

    今天小編就為大家分享一篇關(guān)于C語言中宏定義的妙用方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • C++簡易通訊錄系統(tǒng)實現(xiàn)流程詳解

    C++簡易通訊錄系統(tǒng)實現(xiàn)流程詳解

    這篇文章主要為大家介紹了C語言簡易版通訊錄的具體實現(xiàn)流程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Qt實現(xiàn)無邊框窗口的示例代碼

    Qt實現(xiàn)無邊框窗口的示例代碼

    本文主要介紹了Qt實現(xiàn)無邊框窗口的示例代碼,主要包括鼠標光標在不同區(qū)域的變化,關(guān)閉拖動窗口,窗口支持任意拉伸等,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • C++淺析程序中內(nèi)存的分布

    C++淺析程序中內(nèi)存的分布

    這篇文章主要介紹了C++內(nèi)存分布及用法,從內(nèi)存的基礎(chǔ)概念到內(nèi)存分配進行了講解,內(nèi)存是我們開發(fā)中最重要的一部分,往往邏輯上的錯誤就會造成內(nèi)存泄漏,導(dǎo)致程序無法運行,下面我們就來了解文章對該內(nèi)容的詳細介紹
    2022-08-08
  • C++ OpenCV模擬實現(xiàn)微信跳一跳

    C++ OpenCV模擬實現(xiàn)微信跳一跳

    這篇文章主要介紹了使用C++和OpenCV模擬實現(xiàn)微信跳一跳功能,本文圖文并茂通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • 基于Matlab繪制超絢麗的煙花的過程詳解

    基于Matlab繪制超絢麗的煙花的過程詳解

    這篇文章主要為大家介紹了如何利用Matlab繪制超絢麗的煙花,文中的示例代碼講解詳細,對我們學(xué)習(xí)Matlab有一定幫助,需要的可以參考一下
    2022-02-02

最新評論