c primer 4th中習題4 8的答案

2021-09-30 07:55:09 字數 515 閱讀 6623

比較兩個vector是否相等的**

當輸入兩組相同的數時就會出現異常

問題就出在這裡,當輸入的 ivec1 和  ivec2 的內容相等時,比如都是 1  2  3 時,在執行到 while 迴圈時,比較  ivec1 和  ivec2 的對應數值是否相等,如果相等的話,則迭代器 iter1 和 iter2 都做一次自增運算++。關鍵是當比較完第三個數字 3 後,iter1 和 iter2 都分別指向了容器的末端元素的下乙個位置,即 iter1=ivec1.end(), iter2=ivec2.end(),此時程式返回到 while 迴圈條件繼續判斷,先做判斷 *iter1==*iter2,因為此時 iter1 和iter2 都不指向兩個容器中任何元素,執行這個判斷肯定要出錯了。

解決辦法就是把 while 迴圈條件中的 *iter1==*iter2 寫到最後

這樣當最後一次執行++iter1  ++iter2時,他們都各自指向了末尾元素的下乙個,即ivec1.end()  ivec2.end(),所以判斷條件不成立,跳出迴圈即可執行下面的**了

29 C Primer 4th 筆記,異常處理

1 類成員的指標不同於指向普通資料或函式的指標,普通指標只根據物件或函式的型別而變化,而成員的指標必須反映成員所屬的類。2 異常是通過丟擲物件而引發的。該物件的型別決定應該啟用哪個處理 被選中的處理 是呼叫鏈中與該物件型別匹配且離丟擲異常位置最近的那個。異常以類似於將實參傳遞給函式的方式丟擲和捕獲。...

18 C Primer 4th 筆記,複製控制

1 顯式建構函式 複製建構函式是一種特殊建構函式,具有單個形參,該形參 常用 const 修飾 是對該類型別的引用 當定義乙個新物件並用乙個同型別的物件對它進行初始化時,將顯式使用複製建構函式。當將該型別的物件傳遞給函式或函式返回該型別的物件時,將隱式使用複製建構函式。編譯器自動執行類中非stati...

C primer習題 第4章

習題 4.7 編寫必要的 將乙個陣列賦給另乙個陣列,然後把這段 改用 vector 實現。考慮如何將乙個 vector 賦給另乙個 vector。用陣列實現 include using namespace std intmain inta2 size for size t i 0 ii a2 i a...