vector容器是特別有用的工具,可以完美取代陣列,底層是基於陣列實現的。這裡主要介紹它的過載運算子==,該運算子可以實現快速判斷兩個陣列是否是一樣的。具體實現,如下**:
判斷兩個陣列是一樣的,要滿足兩個條件:①兩個vector容器的大小要一樣 ②固定位置上的值要一樣
具體運用:
//stl_vector.h
template inline bool operator==(const vector& x, const vector& y)
//stl_algobase.h
template inline bool equal(inputiterator1 first1, inputiterator1 last1,
inputiterator2 first2)
《過載運算子的比較過程:依次比較陣列中儲存的元素的值
①若第乙個陣列的值小於第二個陣列的值,返回true;反之,若小於,則返回false。例如[1, 2, 3] 和 [2, 3, 4] ,返回true
②若前面出現的元素的值都相等;若第乙個陣列的長度小於第二個陣列的長度,則返回true;否則返回false
實現的原始碼如下:
//stl_vector.h
template inline bool operator<(const vector& x, const vector& y)
//stl_algobase.h
template bool lexicographical_compare(inputiterator1 first1, inputiterator1 last1,
inputiterator2 first2, inputiterator2 last2)
return first1 == last1 && first2 != last2;
}
[1]《stl3.0原始碼》 過載運算子
題目描述 定義乙個矩形類,資料成員包括左下角和右上角座標,定義的成員函式包括必要的建構函式 輸入座標的函式,實現矩形加法,以及計算並輸出矩形面積的函式。要求使用提示中給出的測試函式並不得改動。兩個矩形相加的規則是 決定矩形的對應座標分別相加,如 左下角 1,2 右上角 3,4 的矩形,與 左下角 2...
過載運算子
include include using namespace std class test test const int a v a test const test t1 v t1.v 以下過載小於號 比較兩個物件的大小 bool operator const test t1 const 比較物件...
過載運算子
1.當乙個過載的運算子是成員函式時,this繫結到左側運算物件。成員運算子函式的引數比運算物件的數量少乙個。非成員函式呼叫等價於 data1 data2 普通表示式 operator data1,data2 等價的函式呼叫成員函式呼叫等價於 data1 data2 普通表示式 data1.opera...