當前位置:編程學習大全網 - 網站源碼 - C++標準庫assign()

C++標準庫assign()

我來簡單的解釋壹下吧:首先,確切地說,vector是標準模版庫(STL)裏的,而不是標準庫其次,在妳給出的程序當中,並不像妳說的那樣,其實,ivec1的內存位置沒有改變,還是那壹塊,除非ivec2的size超過的ivec1的capacity,他才會觸發realloc。妳會出現這種疑問原因只有壹點:妳把叠代器當成指針了。值得註意的是,叠代器有指針的功能,但他不是指針,當對容器進行了插入刪除操作的時候,會導致部分或全部叠代器的失效。妳可以做個實驗,定義個把ivec1=ivec2去掉,改成ivec1.push_back(9); 這樣,妳的指向第壹個元素的叠代器同樣會失效。如果妳是插入,insert或者push_back什麽的,那麽全部叠代器失效,因為他不能確定是否插入元素後會進行內存的重新分配如果妳是刪除,pop_back或者erase什麽的,那麽當前元素及其後的叠代器全部失效妳的那個賦值操作,其實是相當於把ivec1清空,然後在插入,所以,導致全部失效,但沒有引起內存重新分配

  • 上一篇:鴻蒙不自動切換最強wifi
  • 下一篇:剛開始玩《新三國英雄傳》。網上的紅線和藍線是什麽?這到底是什麽意思?獎金線,藍線怎麽分?
  • copyright 2024編程學習大全網