91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++錯誤使用迭代器超出引用范圍問題如何解決

發布時間:2023-03-25 14:40:34 來源:億速云 閱讀:111 作者:iii 欄目:開發技術

這篇文章主要介紹“C++錯誤使用迭代器超出引用范圍問題如何解決”,在日常操作中,相信很多人在C++錯誤使用迭代器超出引用范圍問題如何解決問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C++錯誤使用迭代器超出引用范圍問題如何解決”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

相關錯誤

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)

錯誤截圖

C++錯誤使用迭代器超出引用范圍問題如何解決

C++錯誤使用迭代器超出引用范圍問題如何解決

錯誤代碼塊

C++錯誤使用迭代器超出引用范圍問題如何解決

錯誤原因

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

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

如果想訪問最后一個元素,應該使用

  • 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 診斷改進。 當 IDL 檢查在字符串機制中失誤時,它現在會報告導致失誤的特定行為。 例如,現在會收到“無法取消引用字符串迭代器,因為其已超出范圍(例如末尾迭代器)”,而不是“字符串迭代器不可取消引用”。

在更新日志中已經告訴了我們錯誤的原因了

C++錯誤使用迭代器超出引用范圍問題如何解決

到此,關于“C++錯誤使用迭代器超出引用范圍問題如何解決”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

陆河县| 云林县| 永安市| 伽师县| 政和县| 宜州市| 高安市| 裕民县| 宜黄县| 大悟县| 云和县| 西畴县| 盖州市| 华蓥市| 阿克陶县| 南康市| 谢通门县| 南阳市| 古丈县| 拜城县| 广宗县| 常山县| 梅河口市| 黔江区| 荔波县| 光泽县| 安仁县| 勐海县| 安福县| 巴彦淖尔市| 长沙市| 平阳县| 沁水县| 乐至县| 蒙阴县| 望奎县| 开阳县| 通化县| 富平县| 行唐县| 阳山县|