<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ##實戰c++中的string系列--string的遍歷(使用下標還是iterator) 迭代器提供了訪問容器中對象的方法。例如,可以使用一對迭代器指定list或vector中的一定范圍的對象。迭代器就如同一個指針。事實上,C++的指針也是一種迭代器。但是,迭代器也可以是那些定義了operator*()以及其他類似于指針的操作符地方法的類對象. 我們都知道可以用下標運算來訪問string對象和vector對象。而另外還有一種更通用的方法也可以實現這樣的方法。名曰:迭代器(iterator)。 類似于指針,迭代器也提供了對對象的間接訪問。就迭代器而言,其對象是容器中的元素或者string中的字符。使用迭代器可以訪問某個元素,迭代器也能從一個元素移動到另外一個元素。迭代器有有效和無效之分,有效的迭代器指向某個元素或者容器中尾元素的下一個位置。其他情況均為無效。 和指針不一樣的是,迭代器不是使用取址符,而是使用begin和end成員。? 結合解引用和成員訪問操作 解引用迭代器可以獲得迭代器所指的對象,如果該對象的類型恰好是類,那么就可以訪問這個類的成員。例如: (*it).empty(); 這里要注意*it一定要加圓括號,否則會出錯。如果不加,那么這句話的意思就變成了訪問it的empty成員,但是it是個迭代器,沒有empty成員。C++11中提供了箭頭運算符->,箭頭運算符把解引用和成員訪問兩個操作結合在了一起。故iter->mem 等價于(*iter).mem。 強烈注意:一旦使用了迭代器的循環體,那就不要向迭代器所屬的容器添加元素。 迭代器的算術運算: iter + n 迭代器加上一個整數后仍是一個迭代器,在這里迭代器和指針很像,可以理解成地址上的加減。 iter1 - iter2 兩個迭代器相減的結果是它們之間的距離。即所指向位置的距離。 ,>= 迭代器關系運算符,如果某迭代器指向的容器位置在另一個迭代器所指位置之前,則說前者小于后者。 ==============================================================? 為何string vector可以使用下標訪問,還設計了迭代器模式呢? 個人覺得:? **1、STL設置的初衷是,算法 容器分離**? **2、迭代器更通用些,有的容器對象不支持下標**? **3、一些方法,比如erase只能傳遞iterator** 就vector來說差別不大,迭代器其實就是原生指針,但是就C++整體容器來說還是迭代器好,像list這些容器等等,迭代器給你提供一個中間層,抽象掉各容器間的差異,讓你能以相同的方式訪問容器
                  <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>

                              哎呀哎呀视频在线观看