最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++錯誤使用迭代器超出引用范圍問題及解決方案

 更新時間:2023年03月24日 09:58:12   作者:NueXini  
這篇文章主要介紹了C++錯誤使用迭代器超出引用范圍分析與解決,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

前言

今天在調(diào)用一個URI解析庫的時候,在clang的編譯器上代碼能正常編譯,在visual studio就提示迭代器的錯誤了

相關(guān)錯誤

cannot increment value-initialized string_view iterator
cannot dereference end string_view iterator
cannot increment string_view iterator past end
string iterator not dereferencable" you’ll get "cannot dereference string iterator because it is out of range (e.g. an end iterator)

錯誤截圖

錯誤代碼塊

錯誤原因

if (end_ptr != &*auth_string.end())
{
    return { authority, uri::Error::InvalidPort, auth_string };
}

end()方法將迭代器返回到最后一個元素之后,指向字符串最后一個字符下一個位置。由于它并不指向?qū)嶋H的字符,因此不能對該迭代器進(jìn)行解引用操作。

如果想訪問最后一個元素,應(yīng)該使用

  • string.end() - 1 :注意,該語句僅適用于非空字符串,否則將會越界訪問
  • string.back()
  • string.at(string.size() - 1)

解決方案

方法1(推薦)

if (--end_ptr != &(auth_string.back()))
{
    return { authority, uri::Error::InvalidPort, auth_string };
}

方法2

if (--end_ptr != &*--auth_string.end())
{
    return { authority, uri::Error::InvalidPort, auth_string };
}

方法3

if (--end_ptr != &(auth_string.at(auth_string.size() - 1)))
{
    return { authority, uri::Error::InvalidPort, auth_string };
}

Visual Studio 更新日志

https://learn.microsoft.com/en-us/cpp/overview/what-s-new-for-cpp-2017?view=msvc-170#visual-studio-2017-rtm-version-150

  • Minor basic_string _ITERATOR_DEBUG_LEVEL != 0 diagnostics improvements. When an IDL check gets tripped in string machinery, it will now report the specific behavior that caused the trip. For example, instead of “string iterator not dereferencable” you’ll get “cannot dereference string iterator because it is out of range (e.g. an end iterator)”.
  • 次要 basic_string_ITERATOR_DEBUG_LEVEL != 0 診斷改進(jìn)。 當(dāng) IDL 檢查在字符串機制中失誤時,它現(xiàn)在會報告導(dǎo)致失誤的特定行為。 例如,現(xiàn)在會收到“無法取消引用字符串迭代器,因為其已超出范圍(例如末尾迭代器)”,而不是“字符串迭代器不可取消引用”。

在更新日志中已經(jīng)告訴了我們錯誤的原因了

到此這篇關(guān)于C++錯誤使用迭代器超出引用范圍分析與解決的文章就介紹到這了,更多相關(guān)C++迭代器超出引用范圍內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言排序之?堆排序

    C語言排序之?堆排序

    這篇文章主要介紹了C語言排序之堆排序,文章基于C語言的相關(guān)資料展開詳細(xì)內(nèi)容,具有一定的參考資料,需要的小伙伴可以參考一下
    2022-04-04
  • 關(guān)于C++中vector的兩個小tips分享

    關(guān)于C++中vector的兩個小tips分享

    這篇文章主要給大家介紹了關(guān)于C++中vector的兩個小tips,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • C++中四種對象生存期和作用域以及static的用法總結(jié)分析

    C++中四種對象生存期和作用域以及static的用法總結(jié)分析

    以下是對C++中四種對象生存期和作用域以及static的用法進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下
    2013-09-09
  • C++詳解多線程中的線程同步與互斥量

    C++詳解多線程中的線程同步與互斥量

    線程間如何通信同步?一些伙伴好奇線程間的通信及同步方法,沒關(guān)系,下面小編就繼續(xù)給大家科普下線程間通信及同步的方法以及互斥量
    2022-05-05
  • C++ new、delete(new[]、delete[])操作符重載需要注意的問題

    C++ new、delete(new[]、delete[])操作符重載需要注意的問題

    這篇文章主要介紹了C++ new、delete(new[]、delete[])操作符重載需要注意的問題,本文同時講解了兼容默認(rèn)的 new、delete 的錯誤處理方式、多態(tài)的問題等內(nèi)容,需要的朋友可以參考下
    2014-10-10
  • C++實現(xiàn)鄰接表頂點的刪除

    C++實現(xiàn)鄰接表頂點的刪除

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)鄰接表頂點的刪除,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C++實現(xiàn)簡易UDP網(wǎng)絡(luò)聊天室

    C++實現(xiàn)簡易UDP網(wǎng)絡(luò)聊天室

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)簡易UDP網(wǎng)絡(luò)聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C語言 數(shù)組中重復(fù)的數(shù)字分析及方法

    C語言 數(shù)組中重復(fù)的數(shù)字分析及方法

    這篇文章主要介紹了C語言 數(shù)組中重復(fù)的數(shù)字分析及方法的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • C++?Boost?MultiArray簡化使用多維數(shù)組庫

    C++?Boost?MultiArray簡化使用多維數(shù)組庫

    Boost是為C++語言標(biāo)準(zhǔn)庫提供擴(kuò)展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標(biāo)準(zhǔn)庫的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開發(fā)引擎之一,是為C++語言標(biāo)準(zhǔn)庫提供擴(kuò)展的一些C++程序庫的總稱
    2022-11-11
  • C語言實現(xiàn)單位車輛調(diào)度管理

    C語言實現(xiàn)單位車輛調(diào)度管理

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)單位車輛調(diào)度管理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評論

安远县| 马边| 尚义县| 杭锦后旗| 毕节市| 莲花县| 周口市| 尼木县| 石景山区| 科技| 巴青县| 江西省| 宝丰县| 虞城县| 京山县| 临沂市| 锡林浩特市| 囊谦县| 阳信县| 张家港市| 稷山县| 梁平县| 华安县| 海晏县| 内乡县| 横山县| 延吉市| 敦煌市| 阿尔山市| 长顺县| 固阳县| 德州市| 黔西县| 玛纳斯县| 思南县| 达拉特旗| 洞口县| 萨嘎县| 麦盖提县| 大石桥市| 通河县|