<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ##沒有躲過的坑--map查找結果處理 通過鍵-值的方法進行搜索,可以使用map,極大的提高了速度。 下面代碼就是使用map的find查找,通過鍵,找出對應的值。 ~~~ map<std::string, int> string_int_map; //對string_int_map進行初始化 map<std::string, int >::iterator iter_string_int; string substring_to_find = ":who call who:"; iter_string_int = string_int_map.find(all_emoji_string[i]); int result = iter_string_int ->second; ~~~ 還是,上面的程序大多數情況下沒問題,但是我沒有考慮萬一map中不存在我們查找的鍵呢? 再看了一下find函數的返回值:? **引用具有指定鍵的元素的位置的迭代器,如果找不到具有鍵的匹配項,則引用映射中 (map::end()) 最后一個元素后面的位置。** 如果你沒考慮這個,那么當返回map::end()后: ~~~ iter_string_int ->second; ~~~ 這個指向超尾的迭代器的second和first又是什么? 寫個小程序測試一下: ~~~ #include<iostream> #include<map> int main() { std::map<std::string, int> test_map = { {"how", 3}, {"are", 4}, {"you", 5} }; std::map<std::string, int >::iterator iter_string_int; std::string key_string = "shit"; iter_string_int = test_map.find(key_string); std::cout << iter_string_int->second << std::endl; return 0; } ~~~ 運行:? 崩潰。? ![這里寫圖片描述](http://img.blog.csdn.net/20151125224826360) 這是在控制臺程序中,編譯器會溫柔的給你提示。? 但是在一個大型的win32程序中,就不會這么輕易的給你提示了。 所以 我們要判斷find函數的返回值: find的返回值不等于map::end(),才可以往下進行操作。 ~~~ #include<iostream> #include<map> int main() { std::map<std::string, int> test_map = { {"how", 3}, {"are", 4}, {"you", 5} }; std::map<std::string, int >::iterator iter_string_int; std::string key_string = "shit"; iter_string_int = test_map.find(key_string); if(iter_string_int == test_map::end()) { std::cout << "error" << endl; } else { std::cout << iter_string_int->second << std::endl; } return 0; } ~~~ [](http://blog.csdn.net/wangshubo1989/article/details/50043917#)[](http://blog.csdn.net/wangshubo1989/article/details/50043917# "分享到QQ空間")[](http://blog.csdn.net/wangshubo1989/article/details/50043917# "分享到新浪微博")[](http://blog.csdn.net/wangshubo1989/article/details/50043917# "分享到騰訊微博")[](http://blog.csdn.net/wangshubo1989/article/details/50043917# "分享到人人網")[](http://blog.csdn.net/wangshubo1989/article/details/50043917# "分享到微信")
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看