萬盛學電腦網

 萬盛學電腦網 >> 網頁制作 >> Html5 >> 使用C++的理由

使用C++的理由

下面是使用C++的理由

理由1:move語義(move semantics)。

簡單的說,它是優化復制的一種方式。有時候復制很顯然是浪費的。如果你從一個臨時的string對象復制內容,簡單的復制指針到字符緩沖區將比創建一個新的緩沖區再復制要高效得多。他之所以能工作是因為源對象超出了范圍。 然而,在這以前C++並沒有判斷源對象是不是臨時對象的機制。move語義通過除了復制操作外還允許你有一個move構造函數(move constructor)和一個move賦值運算(move assignment)符來提供這個機制。 你知道嗎?當你在Visual Studio 2010中使用標准庫中的類如string或vector時,它們已經支持move語義了。這可以防止不必要的的復制從而改善性能。 通過在你的類中實現move語義你可以獲得額外的性能提升,比如當你把它們存儲到STL容器中時。還有,move語義不僅可以應用到構造函數,還可以應用到方法(如vector的push_back方法)。

理由2:通過使用類別屬性(type traits,如is_floating_point)和模板元編程(template metaprogramming,如enable_if template),你可以為某些特定的類型定制模版,這可以實現優化。

理由3:哈希表現在已經是標准實現的了,它提供更快速的插入、刪除和查找,這在處理大量數據時很有用。你現在可以隨便使用unordered_map, unordered_multimap, unordered_set 和unordered_multiset這幾種數據結構了。 提高效率 提高效率不僅都是在代碼性能方面,開發時間也是寶貴的。C++ 11可以讓你的代碼更短、更清晰、和更易於閱讀,這可以讓你的效率更高。

理由4:auto關鍵字可以自動推斷類型

理由5:Lambda表達式提供了一種方法來定義匿名方法對象(實際上是閉包),這是代碼更加線性和有規律可循。

理由6:新的智能指針(smart pointer)替換了有問題的auto_ptr,你可以不用擔心內存的釋放並移除相關釋放內存的代碼了。這讓代碼更清晰,並杜絕了內存洩露和查找內存洩露的時間。

理由7:把方法作為first class object是一個非常強大的特性,這讓你的代碼變得更靈活和通用了。C++的std::function提供了這方面的功能。方法提供一種包裝和傳遞任何可調用的東西-函數指針, 仿函數(functor), lambda表達式等。

理由8:還有許多其它小的功能,如override、final關鍵字和nullptr讓你的代碼意圖更明確。對我來說,減少視覺混亂和代碼中能夠更清楚地表達我的意圖意味著更高興、更高效。 另一個開發效率的方面是錯誤檢測。如果你的錯誤在運行時發生,這意味著你至少需要運行軟件,並可能得通過一系列步驟來重現錯誤,這需要時間。

理由9.C++ 11提供了一種方法來檢查先決條件並盡早的在可能的時機捕獲錯誤-編譯過程中,在你運行代碼前。

以上就是我們給大家介紹的使用C++的理由,希望大家繼續關注本網站。

copyright © 萬盛學電腦網 all rights reserved