當前位置:首頁 » 編程軟體 » c泛型編程

c泛型編程

發布時間: 2022-07-07 07:32:10

c語言編程是什麼

C語言編程,顧名思義,就是用C語言來進行計算機編程工作。C語言是國際上廣泛流行的,很有發展前途的計算機高級語言.它適合作為系統描述語言,即可用來編寫系統軟體,也可用來編寫應用軟體.

⑵ 泛型的編程語言

.NET Framework 的泛型
泛型是具有佔位符(類型參數)的類、結構、介面和方法,這些佔位符是類、結構、介面和方法所存儲或使用的一個或多個類型的佔位符。泛型集合類可以將類型參數用作它所存儲的對象的類型的佔位符;類型參數作為其欄位的類型及其方法的參數類型出現。泛型方法可以將其類型參數用作其返回值的類型或者其某個形參的類型。
由於.NET Framework 泛型的類型參數之實際類型在運行時均不會被消除,運行速度會因為類型轉換的次數減少而加快。
另外,使用 GetType 方法可於程序運行時得知泛型及其類型參數的實際類型,更可以運用反射編程。
允許對個別泛型的類型參數進行約束,包括以下幾種形式(假設 C是泛型的類型參數, 是一般類、泛類,或是泛型的類型參數):T 是一個類。T 是一個值類型。T 具有無參數的公有建構方法。T 實現介面 I 。T 是 C ,或繼承自 C 。
Java 的泛型
Java 泛型的參數只可以代表類,不能代表個別對象。由於 Java 泛型的類型參數之實際類型在編譯時會被消除,所以無法在運行時得知其類型參數的類型。Java 編譯器在編譯泛型時會自動加入類型轉換的編碼,故運行速度不會因為使用泛型而加快。Java 允許對個別泛型的類型參數進行約束,包括以下兩種形式(假設 T 是泛型的類型參數,C 是一般類、泛類,或是泛型的類型參數):T 實現介面 I 。T 是 C ,或繼承自 C 。一個泛型類不能實現Throwable介面。
C++ 的泛型(模板)
C++ 無法對泛型的類型參數進行約束。在編譯時,每個被使用的封閉泛型類型(即是所有泛型參數的實際類型都已被指明的泛型)都會有獨立的編碼產生,編譯器會在此時確保類型安全性。可是如果泛型要運用其泛型參數的某成員,而該泛型參數又不包含該成員的時候,編譯器所產生的錯誤信息會看似與實際問題無關,增加出錯的難度。

⑶ C++泛型編程和指針問題

template<typename Key>
using pfun = bool (*)(Key& k1,Key& k2);

輪子哥說的沒錯,然後你還需要
template<typename Key,typename Com = pfun<Key>>

⑷ 大學常說的c語言指的什麼

c語言是一種面向過程的語言,是一種最接近機器硬體的高級語言,也有人稱C語言為中級語言;而C++是一種面向對象的編程語言,支持面向過程的編程,也支持泛型編程,泛型編程我們都不學,它的發展速度沒有面像對象的編程發展速度快,可以說C++語言是一種非常強大的語言;而C#是一種純面向對象的高級編程!

⑸ 我是編程新手,想學習C語言,但聽說就有C ,C++和C#三種,請問學哪種比較好

建議你先學C
像C++,C#以及Java都是基於C的基本語法衍生的;所以你可以認為C是基礎。不過當你到達一定境界你會發現語言只是一種工具而已,只不過每種語言的編程思想不同:

C是支持面向過程編程,它的出現是為了取代匯編語言,不過它的可移植性和簡潔、強大使它很快流行,至今仍在大型系統開發、游戲開發、嵌入式開發等領域佔有很大市場。

C++的出現是為了在C的語言級別支持面向對象,加入了「類」的概念,它是和C語言兼容的(除極少特性)。後來隨著發展,C++變成了一門龐大的語言,它同時支持面向過程,基於過程,面向對象和泛型編程,功能可謂最全。不過它的過於龐大使它難以學習。更重要的是,C++在大學里比較流行,很多學過C++的新手自以為掌握了最難懂的語言,寫的程序拙劣無比、漏洞百出。以現在情況看,C++的開發效率太低,在很多領域已經被其他快速開發語言取代。

總的看來,C/C++產生較早,注重程序運行的效率,它們的宗旨是「相信程序員」。所以你既可以享受一切盡在掌握中的樂趣,又可能倍受錯誤的折磨。

對於C++的種種弱點,Sun的專家推出的Java力求彌補。Java的一大宗旨是「防止程序員犯錯」(必然的損失是效率),Java程序比C/C++更安全,不會有那麼多隱藏的漏洞,而且它是平台無關的,可以在任意支持Java虛擬機的平台運行。Java是網路時代的產物,網路編程的不錯選擇。

至於C#,是微軟模仿Java的作品,是.Net平台的主打語言。相對於Java平台,.net平台胃口更大,它試圖把其他語言包容進來。不過平台之爭與你我無關,簡言之,C#是類Java,它們相互學習,不斷改進,都挺不錯的。

不過,最重要的一點:學編程不僅僅是學習語言,更重要的是學習編程思想,學習技巧,培養能力。語言只是工具!

我個人認為新手應從C開始,踏踏實實理解面向過程編程,多讀源代碼,多寫程序。然後接觸一下面向對象,理解一下為什麼要一切抽象化。

PS:永遠不要理會那些語言之爭,那更多的是他們的信仰之爭。只有最好的程序員,沒有最好的語言。一路順風!

⑹ C++中用到泛型編程後,出現這些錯誤是什麼意思

你用的什麼編譯器? 這個警告的意思是實現的這個類的名字太長了。 新的編譯器應該很少見這個問題

關於警告, 如果你想認真編程,應該開4級警告,並且確保解決所有warning(這個warning沒辦法,只能用#pragma告訴他別報了)。 寫程序留著warning只能應付老師而已,在工作里是不行的

⑺ c++STL泛型編程sort演算法問題

你是指的是在sort泛型演算法中帶的參數有個謂詞吧。謂詞相當於sort中的1個參數,但是謂詞本身是個函數,你這里的是個返回bool類型的函數,這個函數有2個參數,分別是對形參a和b的const引用,然後比較a和b是否相等,如果a不等於b,那麼return a>b 返回的是表達式a>b的值,如果a比b大,值的true,否則值為false ,else return a>b 這里就是a==b的情況下才走到這里,肯定返回false了
在sort演算法里調用如下,比如定義了1個int的vector容器
vector<int> ivec;
sort(ivec.begin(),ivec.end(),Comp);
這里記住Comp後面不能帶參數了,直接寫函數名字即可,在排序的時候就會根據函數的返回結果為true的進行排序,也就是說從大到小排序。

⑻ C++ 容器 和 泛型的問題

容器好比裝東西的器具,迭代器就是用來指示容器中東西的位置。給你打個比方吧,現在有許多書籍放在書架上,那麼書架相當於容器,可以往書架上添加、刪除書籍,而迭代器相當於書籍的一個指針,可以指向任何一本書籍,通過迭代器可以取出書籍。

⑼ C語言是什麼

C語言是國際上廣泛流行的,很有發展前途的計算機高級語言.它適合作為系統描述語言,即可用來編寫系統軟體,也可用來編寫應用軟體.

早期的操作系統等系統軟體主要是用匯編語言編寫的(包括 UNIX操作系統在內).由於匯編語言依賴於計算機硬體,程序的可讀性和可移植性都比較差.為了提高可讀性和可移植性,最好改用高級語言,但一般的高級語言難以實現匯編語言的某些功能(匯編語言可以直接對硬體進行操作),例如:對內存地址的操作,位操作等).人們設想能否找到一種既具有一般高級語言特性, 又具有低級語言特性的語言,集它們的優點於一身.於是,C語言就在這種情況下應運而生了.

C語言是在B語言的基礎上發展起來的,它的根源可以追溯到ALGOL 60. 1960年出現的ALGOL 60是一種面向問題的高級語言,它離硬體比較遠,不宜用來編寫系統程序.1963年英國的劍橋大學推出了CPL(CombinedProgram- ming Language)語言.CPL語言在ALGOL 60的基礎上接近了硬體一些,但規模比較大,難以實現.1967年英國劍橋大學的Matin Richards對 CPL語言作了簡化,推出了BCPL(Basic Combined Programming Language)語言.1970年美國貝爾實驗室的 Ken Thompson以 BCPL語言為基礎,又作了進一步簡化,設計出了很簡單的而且很接近硬體的 B語言( 取 BCPL的第一個字母),並用 B語言寫第一個UNIX操作系統,在PDP-7上實現. 1971年在PDP-11/20上實現了B語言,並寫了UNIX操作系統.但B語言過於簡單,功能有限.1972年至 1973年間,貝爾實驗室的 D.M.Ritchie在B語言的基礎上設計出了C語言(取 BCPL的第二個字母).C語言既保持了BCPL和B語言的優點(精練,接近硬體),又克服了它們的缺點(過於簡單,數據無類型等). 最初的C語言只是為描述和實現UNIX操作系統提供一種工作語言而設計的.1973年,K.Thom- pson和D.M.ritchie兩人合作把UNIX的90%以上用 C改寫(UNIX第5版.原來的 UNIX操作系統是1969年由美國的貝爾實驗室的 K.Thompson和D.M.Ritchie開發成功的,是用匯編語言寫的).

後來,C語言多次作了改進,但主要還是在貝爾實驗室內部使用.直到1- 975年UNIX第6版公布後 ,C語言的突出優點才引起人們普遍注意.1977年出現了不依賴於具體機器的C語言編譯文本《可移植C語言編譯程序》,使C移植到其它機器時所做的工作大大簡化了,這也推動了UNIX操作系統迅速地在各種機器上實現.例如,VAX,AT&T等計算機系統都相繼開發了UNIX.隨著 UNIX的日益廣泛使用,C語言也迅速得到推廣.C語言和UNIX可以說是一對孿生兄弟,在發展過程中相輔相成.1978年以後,C語言已先後移植到大, 中,小,微型機上,已獨立於UNIX和PDP了.現在C語言已風靡全世界,成為世界上應用最廣泛的幾種計算機語言之一.

以1978年發表的UNIX第7版中的C編譯程序為基礎,Brian W.Kernighan和 Dennis M.Ritchie(合稱K&R)合著了影響深遠了名著《The C Programming Lan- guage》,這本書中介紹的C語言成為後來廣泛使用的C語言版本的基礎,它被稱為標准C.1983年,美國國家標准化協會(ANSI)根據C語言問世以來各種版本對C的發展和擴充 ,制定了新的標准,稱為ANSI C.ANSI C比原來的標准C有了很大的發展.K&R在1988年修改了他們的經典著作《The C Progra- mming Language》 ,按照ANSI C的標准重新寫了該書.1987年,ANSI C又公布了新標准--87 ANSI C .目前流行的C編譯系統都是以它為基礎的.

⑽ 泛型編程支持最完善的現在仍然是C++嗎

C++可以兼容大部分C語言編程。
C++是在C語言的基礎上開發的一種面向對象編程語言,應用廣泛。C++支持多種編程範式
--面向對象編程、泛型編程和過程化編程

熱點內容
ip和伺服器有關嗎 發布:2025-02-09 12:51:26 瀏覽:949
極光免費腳本 發布:2025-02-09 12:50:33 瀏覽:393
c存儲過程返回結果集 發布:2025-02-09 12:42:00 瀏覽:149
gs哪個配置性價比高 發布:2025-02-09 12:35:57 瀏覽:282
java棧數組 發布:2025-02-09 12:33:37 瀏覽:555
php上傳文件form 發布:2025-02-09 12:33:31 瀏覽:156
冠道如何選擇配置 發布:2025-02-09 12:20:21 瀏覽:970
為什麼安卓手機wearpro搜不到手錶 發布:2025-02-09 12:16:07 瀏覽:670
伺服器安全怎麼做 發布:2025-02-09 12:08:08 瀏覽:484
傳奇編譯完整部署教程 發布:2025-02-09 12:03:39 瀏覽:830