請教C中上尖括號的含義和用法

2021-05-16 08:09:50 字數 2834 閱讀 7163

1樓:匿名使用者

當作運復算符是邏輯運算:異或

制異或運算是

bai二進位制du按位計算的,二進位制每位上數字不zhi同時得到1,否則是0,一般dao用於判斷某些二進位制位上數字是否變化。

5^4=00000101^00000100=00000001=1,只有最後一位兩個數取值不同

程式語言如圖,這尖括號什麼意思

2樓:匿名使用者

模板引數的意思

ctyped******list《這裡是什麼型別>

就是關於什麼型別的list

c++中的<>代表什麼意思?

3樓:天涼秋夜

c++中的<>代表c++模板。

模板是c++支援引數化多型的工具,使用

模板可以使使用者為類或者函式宣告一種一般模式,使得類中的某些資料成員或者成員函式的引數、返回值取得任意型別。

c++語言是一種物件導向的強型別語言,由at&t的bell實驗室於2023年推出。c++語言是c語言的一個向上相容的擴充。c++是一種支援多範型的程式設計語言,它既支援物件導向的程式設計,也支援程序導向的程式設計。

c++支援基本的物件導向概念:物件、類、方法、訊息、子類和繼承。

4樓:匿名使用者

c++模板

模板是c++支援引數化多型的工具,使用模板可以使使用者為類或者函式宣告一種一般模式,使得類中的某些資料成員或者成員函式的引數、返回值取得任意型別。

模板是一種對型別進行引數化的工具;

通常有兩種形式:函式模板和類别範本;

函式模板針對僅引數型別不同的函式;

類别範本針對僅資料成員和成員函式型別不同的類。

使用模板的目的就是能夠讓程式設計師編寫與型別無關的**。比如編寫了一個交換兩個整型int 型別的swap函式,這個函式就只能實現int 型,對double,字元這些型別無法實現,要實現這些型別的交換就要重新編寫另一個swap函式。使用模板的目的就是要讓這程式的實現與型別無關,比如一個swap模板函式,即可以實現int 型,又可以實現double型的交換。

模板可以應用於函式和類。下面分別介紹。

注意:模板的宣告或定義只能在全域性,名稱空間或類範圍內進行。即不能在區域性範圍,函式內進行,比如不能在main函式中宣告或定義一個模板。

一、函式模板通式

1、函式模板的格式:

template

返回型別 函式名(引數列表)

其中template和class是關見字,class可以用typename 關見字代替,在這裡typename 和class沒區別,<>括號中的引數叫模板形參,模板形參和函式形參很相像,模板形參不能為空。一但宣告瞭模板函式就可以用模板函式的形參名宣告類中的成員變數和成員函式,即可以在該函式中使用內建型別的地方都可以使用模板形參名。模板形參需要呼叫該模板函式時提供的模板實參來初始化模板形參,一旦編譯器確定了實際的模板實參型別就稱他例項化了函式模板的一個例項。

比如swap的模板函式形式為

template void swap(t& a, t& b){},

當呼叫這樣的模板函式時型別t就會被被呼叫時的型別所代替,比如swap(a,b)其中a和b是int 型,這時模板函式swap中的形參t就會被int 所代替,模板函式就變為swap(int &a, int &b)。而當swap(c,d)其中c和d是double型別時,模板函式會被替換為swap(double &a, double &b),這樣就實現了函式的實現與型別無關的**。

2、注意:對於函式模板而言不存在 h(int,int) 這樣的呼叫,不能在函式呼叫的引數中指定模板形參的型別,對函式模板的呼叫應使用實參推演來進行,即只能進行 h(2,3) 這樣的呼叫,或者int a, b; h(a,b)。

二、類别範本通式

1、類别範本的格式為:

template

class 類名

;類别範本和函式模板都是以template開始後接模板形參列表組成,模板形參不能為空,一但宣告瞭類别範本就可以用類别範本的形參名宣告類中的成員變數和成員函式,即可以在類中使用內建型別的地方都可以使用模板形參名來宣告。比如

templateclass a;

在類a中宣告瞭兩個型別為t的成員變數a和b,還宣告瞭一個返回型別為t帶兩個引數型別為t的函式hy。

2、類别範本物件的建立:比如一個模板類a,則使用類别範本建立物件的方法為am;在類a後面跟上一個<>尖括號並在裡面填上相應的型別,這樣的話類a中凡是用到模板形參的地方都會被int 所代替。當類别範本有兩個模板形參時建立物件的方法為am;型別之間用逗號隔開。

3、對於類别範本,模板形參的型別必須在類名後的尖括號中明確指定。比如a<2> m;用這種方法把模板形參設定為int是錯誤的(編譯錯誤:error c2079:

'a' uses undefined class 'a'),類别範本形參不存在實參推演的問題。也就是說不能把整型值2推演為int 型傳遞給模板形參。要把類别範本形參調置為int 型必須這樣指定am。

4、在類别範本外部定義成員函式的方法為:

template《模板形參列表》 函式返回型別 類名《模板形參名》::函式名(引數列表),

比如有兩個模板形參t1,t2的類a中含有一個void h()函式,則定義該函式的語法為:

templatevoid a::h(){}。

注意:當在類外面定義類的成員時template後面的模板形參應與要定義的類的模板形參一致。

5、再次提醒注意:模板的宣告或定義只能在全域性,名稱空間或類範圍內進行。即不能在區域性範圍,函式內進行,比如不能在main函式中宣告或定義一個模板。

5樓:匿名使用者

這個<>是用來寫指令的,比如hallowork

C方法的括號裡面是什麼,c 中的各種括號的用法

大括號用於定義函式體,構成複合語句 語句塊 宣告聯合 union 及結構體變數。也用於初始化陣列 結構體等型別的變數。中括號用於指明陣列下標 在宣告陣列時,用於確定陣列長度。小括號用於宣告函式引數列表,改變表示式運算的方向,向函式傳遞引數。除了上述這些作用外,小括號也具有在代數運算中相同的作用,另外...

用c語言將下列陣列中花括號的字元打遇來

include stdio.h int main char s sdkfjsdlk,fsdffsd printf s n s return 0 char p 這個宣告和初始化編譯不能通過。宣告成 char p 相當於 宣告 char p 3 你想用 另宣告 char x 把p的始地址傳給它。main...

請教C語言問題關於用函式求最高的分數所對應的學生和課程

這是比較的函式 float highest return high 先 define m 5 define n 10 n 學生 m 科目 我這裡用了二位陣列的 c語言,輸入十個學生五門課的成績,分別用函式求 1 每個學生的平均成績 2 最高分所對應的學生和課程 c語言 輸入5個學生3門課程的成績,分...