C++基礎::關於區間端點的問題
在STL
的環境中,我們知道區間都是左閉右開的區間。這一點很重要,然而僅僅知道這些還是不夠的。
當自加運算和迴圈結合,要特別小心:
比如返回容器中某一元素所在的索引,
vector<string> values{"hello", "world", "inside", "zhang"};
vector<string>::const_iterator pos = values.begin();
while (*pos != "inside")
++pos;
size_t idx = pos - values.begin(); // 這時idx == 2
可是如果想試圖更裝逼的使用自加機制,你也許會這樣寫:
while (*pos++ != "inside");
size_t idx = pos - values.begin();
// 這時idx == 3
// 稍加思考,比較容易理解,無論是`++i`還是`i++`
// 都是兩個動作,
// 比如本例,當*pos == "inside"時,pos還要進行自加
相關文章
- C++基礎——有關引用的問題C++
- 【c++基礎】菱形繼承問題C++繼承
- 關於PHP 時區錯誤的問題PHP
- 關於網路的一點問題(轉)
- iOS面試中經常問的點 - 基礎問題(一)iOS面試
- 關於基於JiveJdon3框架的POJOObjectFactory問題框架POJOObject
- 關於hive的基礎Hive
- 關於wake on lan遠端喚醒主機的問題,長時間關機無法遠端喚醒
- 關於sun Solaris的遠端拷貝的問題
- 關於時間轉換 SimpleDateFormat 的使用的問題ORM
- BlueDog 關於標準C++有關問題的解答<二> (轉)C++
- 關於學習效率問題,一點點心得
- 關於repaint()問題,大家請指點AI
- 關於HibernateDaoSupport使用的問題,高手指點
- 關於C++當中的指標懸空問題C++指標
- 關於區間操作查詢(字首和與差分)+樹狀陣列基礎陣列
- 關於C與C++的區別C++
- 關於 App 啟動時間測試的問題APP
- 關於時間 PHP 處理包遇到的問題時間序列化差值問題PHP
- 基於關鍵詞及問題主題的問題相似度計算
- 【移動端開發】移動端開發基礎問題
- C++關於DLL中建立套接字的問題(求教)C++
- C++雜談之關於檔案操作的若干問題C++
- 關於執行緒的問題,清高手指點執行緒
- 關於 session 未到設定的過期時間就過期的問題(分享坑點)Session
- 關於C++物件的成員變數的佈局問題C++物件變數
- python關於多級包之間的引用問題Python
- 關於SQLServerDriver的問題SQLServer
- 關於 JavaMail 的問題JavaAI
- 關於session的問題Session
- C++基礎(八)struct和class的區別C++Struct
- 經典問題 2 —— 動態不包含區間與點完美匹配問題
- 關於java的引用和c++的區別JavaC++
- 買基金的基礎問題
- 【Mysql】關於一個mysql的坑比時區問題MySql
- 關於mybatis,需要掌握的基礎MyBatis
- 關於node.js的基礎Node.js
- 【PHP】PHP基礎知識與C++、Java等C家族的重點區別PHPC++Java