C 過載《運算子及排序結構體

2022-01-17 13:09:11 字數 1313 閱讀 5190

c++的string已經定義了各種比較運算子。

c風格的字串(char陣列)則採用strcmp比較字串大小。詳細見下

#include #include 

#include

using

namespace

std;

//先按成績比較

//成績相同按名字,

//名字相同按年齡

struct

student

};int

main()

; student y = ;

printf(

"%s\n

", x < y ? "

yes" : "no"

);

return0;

}

#include #include 

#include

using

namespace

std;

struct

structname } buf[5];

void

printbuf()

}int

main()

; buf[

1] = ;

buf[

2] = ;

buf[

3] = ;

buf[

4] = ;sort(buf, buf+ 5);printbuf();

return0;

}

#include #include 

#include

using

namespace

std;

struct

structname buf[5];

void

printbuf()

}bool cmp(const structname& a, const structname&b)

int

main()

; buf[

1] = ;

buf[

2] = ;

buf[

3] = ;

buf[

4] = ;sort(buf, buf+ 5, cmp);printbuf();

return0;

}

C 過載運算子

運算子過載是一種形式的c 多型。在c 中,編譯器有能力把乙個由資料 物件和操作符共同組成的表示式,解釋為對乙個全域性或成員函式的呼叫。該全域性或成員函式被稱為操作符函式,通過重定義操作符函式,可以實現針對自定義型別 結構,類 的運算法則,並使之與內建型別一樣參與各種表示式。過載運算子可使 看起來更加...

C 過載運算子

本文主要講述加號運算子 自增運算子 流提取運算子運 流插入運算子 先給出vector類 class vector 建構函式 vector const vector v 拷貝建構函式 vector operator const vector v 過載 vector operator 過載前置自增運算子...

C 過載運算子

過載的運算子是帶有特殊名稱的函式,函式名是由關鍵字 operator 和其後要過載的運算子符號構成的。與其他函式一樣,過載運算子有乙個返回型別和乙個引數列表。如果我們定義的函式為類的成員函式 box operator const box 如果我們定義的函式為非成員函式,那麼我們需要為每次操作傳遞兩個...