精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

C++ 能否成為你新的腳本語言?

開發 后端
第一個我真正喜愛的編程語言是 C。我花了不少時間才找到它:當我還是一個孩子,我就開始在珍貴的ZX Spectrum上使用 Z80 匯編。那些日子是你能夠真正掌握你的電腦的時候,你不需要蘋果,谷歌,微軟或者其他任何人的允許就能寫一個程序。

一些背景

***個我真正喜愛的編程語言是 C。我花了不少時間才找到它:當我還是一個孩子,我就開始在珍貴的ZX Spectrum上使用 Z80 匯編。那些日子是你能夠真正掌握你的電腦的時候,你不需要蘋果,谷歌,微軟或者其他任何人的允許就能寫一個程序。我在漂亮的128K ZX Spectrum +2上學習了在超出 CPU 尋址空間時對內存塊分頁。直到我進入大學,我才擁有一臺 IBM PC 機 。我玩遍了電子表格,試圖修復現存的 Fortran 程序,用土耳其字符給鍵盤驅動打補丁,還學了點 Pascal 語言。之后,在我就職于土耳其中央銀行期間,我又學習了 SQL 和 APL。

[[135397]]

我一直對 C 語言有所耳聞,但我一直沒有接觸到一款C語言編譯器。直到我到康奈爾大學擁有了一個Unix 賬號之后,我編譯了我人生中的***個 hello.c 文件,不久之后,我有了***臺電腦……我在 DOS 分區上安裝了 DJGPP 編譯器,構建了我人生中***個 Linux 內核(我***個發行版是 Debian),并且開始學習 C 語言。Plauger 的 “Standard C Library” 是我最喜歡的書。

當我開始享受用 C 編程的時候,C++ 已經廣泛應用超過十年了。所以,我下一步使用 C++ 看起來是很自然的一步了。

除了……好吧,除了 C++ 是一片混亂。那段時間,所有人都被繼承層次深深吸引了,每個人都在編寫精心設計的字符串類。大多數硬盤都太慢,不能再有限的時間內編譯出可靠的 C++ 庫(好吧,我有點夸張了),大部分 CPU 都在試圖實例化模板中融化了,大部分人,那些假裝 C++ 程序員的 C 程序員們,差點就把 malloc 的返回值給扔了。

在那時,我正忙于試圖建立定制化的網絡經濟實驗,看起來 Java 似乎很有優勢。至少,它不需要麻煩地拼湊出一個對話框。產生少量的 socket 連接,并且使你的應用編譯和運行在多種多樣的系統上。當然,AWT 和 Swing 都很丑陋且笨重,但對我的目的來說,那沒關系。

但是,僅僅是因為不能在實驗室之外運行我的實驗(因為在實驗室已經配置了所有電腦,java應用程序運行不會有問題)。所以我快速的把 FreeBSD部署到了一臺擁有100Mhz奔騰處理器,16Mb內存,在角落里收集灰塵的機器上,并搭建了一個擁有perl模塊(mod_perl)的 Apache服務器,然后就能工作了。那就是我愛上Perl的時候。

那份愛完全起源于實用的原因,我并不是認為Perl特別的***,并且那時候我認為包括其他許多語言都不是很***,他們中的每一個都有自己的瑕疵。

Perl總是能減少我必須解決的特別問題的工作的數量,有些是因為語言特性,但大部分是因為 CPAN

舉例來說,作為一個 Perl 程序員,解析 HTML 作為 HTML 是一個解決方案。我必須決定,要么就構造整個樹, 或者使用流化的方式。在某些情況下,前者是具有優勢的,但后者的好處是可以使內存的需求降至***,即使是在這個年代,如果你處理 HTML 文檔以兆字節方式還是可以奏效的。不論哪種方式,這些工具都不會在無效的 HTML 上被卡住,并在非 XML 的有效 HTML 上運作良好。

還有,Perl 提供可移植性。如果我不需要操作系統特定的功能,不用任何修改地方,我的 perl 代碼就可以運行。

當我寫了一些類,并為它們做了封裝,也不會有復雜的架構。

C++ 涅槃

在過去的數年,C++如獲新生。許多聰明人已經開始意識到須要向C++程序員提供同時涵蓋 work of the ISO committee boost的構建模塊。

在真實環境下,仍然有90%的菜鳥生成C++程序員就是沒有意識到new是一個合法符號的C程序員。在這方面,C++與Perl非常相似:大部分人寫過Perl代碼的人也沒有意識到Perl不是C、Java、Python、shell、Awk或者其他你可以列舉的語言。

但是,當你看到新C++標準中的新東西,以及編譯器不斷實現浙西特性的新聞時,我們無法抑制住內心的興奮和好奇。

單詞計算練習

這是一個簡單的練習,使用 C++ 或者 Perl 并且不依賴外部庫,所以這是一個很好的起點。

這是 Perl 版本,供您參考:

 

  1. #!/usr/bin/env perl 
  2.  
  3. use strict; 
  4. use warnings; 
  5.  
  6. run(/@ARGV); 
  7.  
  8. sub run { 
  9.     my $argv = shift; 
  10.     my @counts; 
  11.  
  12.     for my $file ( @$argv ) { 
  13.         my $count = -1; 
  14.         eval { 
  15.             $count = word_count($file); 
  16.             1; 
  17.         } or warn "$@"
  18.  
  19.         push @counts, { 
  20.             file => $file, 
  21.             word_count => $count, 
  22.         }; 
  23.     } 
  24.  
  25.     for my $result (@counts) { 
  26.         printf "%s: %d words/n", $result->{file}, $result->{word_count}; 
  27.     } 
  28.  
  29. sub word_count { 
  30.     my $file = shift; 
  31.     my %words; 
  32.  
  33.     open my $fh, '<', $file 
  34.         or die "Cannot open '$file': $!"
  35.  
  36.     while (my $line = <$fh>) { 
  37.         my @words = split ' ', $line; 
  38.         $words{ $_ } += 1 for @words; 
  39.     } 
  40.  
  41.     close $fh; 
  42.  
  43.     my $word_count; 
  44.     $word_count += $_ for values %words; 
  45.     return $word_count; 

而且,這是我***的付出在轉化 Perl 到現代風格的 C++ 上面。我沒有嘗試寫特別搞笑的代碼:只是和 Perl 一樣,我把重點放在寫代碼上面,使得我感到非常自然,同時確保兩個程序都做大致相同的事情。

 

  1. #include <cerrno> 
  2. #include <cstdio> 
  3. #include <cstdlib> 
  4. #include <fstream> 
  5. #include <iostream> 
  6. #include <numeric> 
  7. #include <unordered_map> 
  8. #include <string> 
  9. #include <vector> 
  10.  
  11. using std::accumulate; 
  12. using std::cerr; 
  13. using std::cout; 
  14. using std::endl; 
  15. using std::ifstream; 
  16. using std::make_pair; 
  17. using std::pair; 
  18. using std::strerror; 
  19. using std::string; 
  20. using std::unordered_map; 
  21. using std::vector; 
  22.  
  23. int word_count(const char *const file) noexcept(false); 
  24.  
  25. int main(int argc, char *argv[]) { 
  26.     vector< pair<string, int> > counts {}; 
  27.  
  28.     for (auto i = 1; i < argc; i += 1) { 
  29.         try { 
  30.             counts.push_back(make_pair(argv[i], word_count(argv[i]))); 
  31.         } catch (const string& e) { 
  32.             cerr << e << endl; 
  33.             counts.push_back(make_pair(argv[i], -1)); 
  34.         } 
  35.     } 
  36.  
  37.     for (auto& result : counts) { 
  38.         cout << result.first << ": " << result.second << " words" << endl; 
  39.     } 
  40.  
  41.     return 0; 
  42.  
  43. int 
  44. word_count(const char *const file) noexcept(false) { 
  45.     errno = 0; 
  46.     ifstream fp(file); 
  47.     { 
  48.         // Does fp.fail() preserve errno? 
  49.         int save_errno = errno; 
  50.         if (fp.fail()) { 
  51.             throw("Cannot open '" + string(file) + "': " + strerror(save_errno)); 
  52.         } 
  53.     } 
  54.  
  55.     unordered_map<string, int> word_count {}; 
  56.     string word; 
  57.  
  58.     while (fp >> word) { 
  59.         word_count[word] += 1; 
  60.     } 
  61.  
  62.     fp.close(); 
  63.  
  64.     return accumulate( 
  65.         word_count.cbegin(), 
  66.         word_count.cend(), 
  67.         0, 
  68.         [](int sum, auto& el) { return sum += el.second; } 
  69.     ); 

20 行代碼用于 #include 和 using 聲明可能看起來有點多,但是我抬眼 using namespace std,也討厭不斷地輸入 std::… 更多的是因為我喜歡較短的代碼行。

首先要注意的是沒有看得見的顯式的內存分配。容器集裝箱管理自己的內存。

第二,這是一個大問題:我們有自動導入(autovivification)!

 

  1. unordered_map<string, int> word_count {}; 
  2. string word; 
  3.  
  4. while (fp >> word) { 
  5.     word_count[word] += 1; 

第三,我們有 lambda 表達式:

  1. return accumulate( 
  2.     word_count.cbegin(), 
  3.     word_count.cend(), 
  4.     0, 
  5.     [](int sum, auto& el) { return sum += el.second; } 
  6. ); 

在這背后,accumulate 將內部變量初始化為 0,并調用一個匿名函數,其***一個參數指定為當前值,以及word_count的下一個元素。

現在,我不得不承認,我不知道這些特性是如何實現的,但是 Microsoft Visual C++ 2015 RC 成功運行了,微軟似乎終于趕上了在該領域的***發展。

現在的情況

然而,一切都不樂觀。盡管 boost libraries 填補了許多空白,而且標準庫提供了令人印象深刻的構件,但是也很難戰勝 Perl 和 CPAN 結合帶來的那種編寫可在任何地方***運行的可移植代碼的便利性。

例如,我能找到一個平臺無關的庫,可以讓我在不需要 Excel 的情況下解析或創建 Excel 文件嗎?這個庫能夠用 clang、g++ 和 cl 輕易地編譯出來嗎?好像不太可能。

我真的非常感謝標準委員會的人們的辛勤工作,和那些開發編譯器,眾多庫的人們。它們讓我不必在編寫 C++ 程序時辛苦的思考。

這讓我在真正控制我的計算機時還能感覺舒適。

在這里,我真的非常感謝。

你可以在/r/cpp評論本文。

責任編輯:王雪燕 來源: oschina
相關推薦

2009-06-10 08:41:15

Linux腳本語言

2024-05-24 14:16:11

2011-08-16 10:03:45

Groovy編程語言Web

2022-07-04 08:35:57

Vim 9.0Linux腳本語言

2011-08-22 18:00:53

Lua語言

2010-02-24 14:04:32

Python腳本語言

2023-01-09 16:44:53

編程語言C++C

2010-02-26 09:33:51

Python腳本

2012-07-16 11:23:18

LinuxWindows腳本語言

2011-08-25 10:40:21

Lua游戲

2011-08-22 16:59:28

Lua

2011-08-25 11:02:04

2011-07-06 16:54:44

ASP

2011-06-22 10:14:49

JVM

2011-07-05 10:39:55

JVM

2011-05-07 08:35:22

PHP

2022-07-20 15:20:40

谷歌開源

2011-08-22 18:08:09

Lua腳本

2010-02-26 13:03:31

Python腳本語言

2011-09-07 09:51:27

Javascript
點贊
收藏

51CTO技術棧公眾號

国产极品美女高潮无套久久久| 欧美在线视频一区| 黑人巨大猛交丰满少妇| 好吊日av在线| 国产免费久久精品| 91最新国产视频| 黄色片视频网站| 日本一二区不卡| 欧美精品一区在线观看| 九九视频精品在线观看| 色帝国亚洲欧美在线| 久久精品人人做| 97se在线视频| 国产情侣免费视频| 18成人免费观看视频| 国产香蕉一区二区三区在线视频 | 久草精品电影| 国产精品久久欧美久久一区| 国产日韩一区二区三区在线播放| xvideos亚洲人网站| 欧类av怡春院| 国产精品日本一区二区不卡视频 | 男人日女人bb视频| 影音先锋男人在线资源| 国产欧美日韩一区二区三区在线观看| 丁香五月网久久综合| 亚洲免费视频二区| 亚洲视频成人| 欧美高清一级大片| 精品人体无码一区二区三区| 日韩av中文字幕一区| 日韩欧美中文字幕制服| 在线观看高清免费视频| 97se综合| 精品国产91乱高清在线观看| 青青草视频在线视频| 欧美一区二区三区| 亚洲国产精品成人综合色在线婷婷| 精品国产乱码久久久久久108| 国产理论视频在线观看| 免费精品99久久国产综合精品| 欧美在线日韩在线| 国产成人在线免费观看视频| 国自产拍偷拍福利精品免费一 | 国产97免费视频| 色喇叭免费久久综合| 亚洲石原莉奈一区二区在线观看| 波多野结衣先锋影音| 精品按摩偷拍| 亚洲第一视频在线观看| 亚洲色偷偷色噜噜狠狠99网| 亚洲网址在线观看| 精品久久一二三区| 娇妻高潮浓精白浆xxⅹ| 成人在线tv视频| 亚洲成人教育av| 亚洲成av人片在线观看无| 丁香5月婷婷久久| 精品88久久久久88久久久| 97中文字幕在线观看| 1313精品午夜理伦电影| 精品一区亚洲| 91精品国产综合久久久久久| 亚洲18在线看污www麻豆| 欧美日韩卡一| 欧美一级片在线| 亚洲女则毛耸耸bbw| 99精品中文字幕在线不卡| 欧美成人aa大片| 亚洲熟女一区二区| 偷拍视屏一区| 国产亚洲a∨片在线观看| 337人体粉嫩噜噜噜| 欧美成人激情| 美女福利视频一区| 久久精品国产亚洲av高清色欲| 伊人久久久大香线蕉综合直播 | 偷拍视频一区二区| 日本最新在线视频| 一级特黄大欧美久久久| 成人免费播放器| 黑人巨大亚洲一区二区久 | 成人在线激情网| 国产精品久久久久久妇女| 51精品视频一区二区三区| 亚洲精品久久一区二区三区777| 久久国产精品免费精品3p| 亚洲欧美国产日韩天堂区| 久久精品三级视频| 欧美喷水视频| 欧美在线精品免播放器视频| 亚洲性在线观看| 成人午夜av电影| 日韩.欧美.亚洲| 亚洲夜夜综合| 色综合久久综合网欧美综合网 | 国产超碰在线一区| 久久五月天婷婷| 国产二区三区在线| 欧美日韩在线免费| 在线观看日本www| 国内露脸中年夫妇交换精品| 国产一区二区三区久久精品| 久久久久久久久久久久久久久久久 | 国产丝袜一区二区三区免费视频| 久久久久99精品成人| 欧美日一区二区三区在线观看国产免| 日本一欧美一欧美一亚洲视频| 一级日韩一级欧美| 91女神在线视频| www.亚洲一区二区| 国模冰冰炮一区二区| 日韩一区二区精品在线观看| 亚洲第一成人网站| 欧美午夜免费影院| 国产一区二区在线免费视频| 天天av天天翘| 中文字幕在线免费不卡| 少妇av一区二区三区无码| **精品中文字幕一区二区三区| 亚洲国产精品一区二区三区| 午夜爽爽爽男女免费观看| 另类天堂av| 国产精品区二区三区日本| 最新97超碰在线| 色综合激情五月| 国产草草浮力影院| 欧美成人日本| 亚洲国产wwwccc36天堂| 菠萝蜜影院一区二区免费| 国产午夜在线播放| 懂色av一区二区夜夜嗨| 久久免费视频2| 国产精品伊人| 亚洲情综合五月天| 在线观看免费国产视频| 懂色av一区二区夜夜嗨| www成人免费| 久久久久久久久久久久电影| 日韩中文字幕在线精品| 亚洲视屏在线观看| 国产欧美日韩精品一区| 日韩中文字幕组| 欧美美女在线| 日韩美女写真福利在线观看| 亚洲av成人精品一区二区三区在线播放| 一区二区免费在线| 四虎国产精品永久免费观看视频| 国产精品99一区二区三| 国产色综合天天综合网| 黄色片网站在线| 91麻豆精品国产| 久久国产美女视频| 国产精品18久久久久久久网站| 国产又黄又爽免费视频| 久久gogo国模啪啪裸体| 精品国内亚洲在观看18黄 | 国产又色又爽又黄刺激在线视频| 日韩欧美一区二区久久婷婷| 久久午夜无码鲁丝片| 成人综合在线观看| av免费观看网| 九九热爱视频精品视频| 国产精品视频导航| 麻豆系列在线观看| 日韩一级精品视频在线观看| 久久久久久蜜桃| 91欧美一区二区| 亚洲xxxx2d动漫1| 婷婷亚洲最大| 国产精品久久久对白| 极品美鲍一区| 国产一区二区三区丝袜| 999av视频| 午夜欧美一区二区三区在线播放 | 国产片一区二区| 国产精品区在线| 国产精品videossex久久发布| 国产高清自拍一区| 一区二区电影免费观看| 中文字幕日韩在线观看| 亚洲乱色熟女一区二区三区| 精品久久中文字幕久久av| 最新中文字幕av| 国产精品夜夜嗨| 波多野结衣家庭教师在线| 精品国产一区二区三区四区| 成人国产精品一区二区| hd国产人妖ts另类视频| 一区二区三区亚洲| www.国产欧美| 欧美在线不卡一区| 久久久www成人免费毛片| 久久午夜电影网| 红桃视频一区二区三区免费| 一区二区动漫| 特级毛片在线免费观看| 欧美午夜寂寞| 91亚洲国产成人精品性色| 日韩脚交footjobhd| 色偷偷88888欧美精品久久久| 亚洲欧美黄色片| 欧美视频一二三区| 中文字幕亚洲高清| 中文字幕欧美一| 全黄一级裸体片| 国产成人8x视频一区二区| caopor在线视频| 真实国产乱子伦精品一区二区三区| 国产亚洲精品自在久久| 少妇精品视频一区二区免费看| 欧美成人精品一区二区| 青青国产在线| 日韩免费成人网| 日韩乱码一区二区三区| 一区二区三区四区不卡视频 | 中文字幕日韩精品一区 | 日韩手机在线| 成人在线国产精品| 北岛玲heyzo一区二区| 久久成人综合视频| 国产视频网站在线| 欧美一区二区在线免费观看| 中文字幕在线天堂| 一区二区三区视频在线观看| 国产喷水在线观看| 91在线观看地址| 欧美xxxx黑人| 日日噜噜夜夜狠狠视频欧美人| 日韩欧美国产综合在线| 中文在线播放一区二区| 亚洲国产一区二区精品视频| 精品国产乱码久久久| 精品日韩电影| 亚洲经典视频| 91亚洲精品久久久久久久久久久久| 久久久久久久性潮| 国产成人精品免费久久久久| 欧美亚洲日本精品| 中文字幕亚洲图片| www.黄在线观看| 亚洲视频综合网| 亚洲色图21p| 亚洲精品久久久久久久久久久久久| 国产农村妇女毛片精品| 欧美日韩三级一区| 天天操天天操天天操天天| 精品久久久久久中文字幕大豆网| 九九视频免费看| 亚洲欧美日韩成人高清在线一区| 免费精品在线视频| 国产精品卡一卡二| 亚洲最大成人综合网| 不卡电影一区二区三区| 国产精品成人99一区无码| 国产不卡一区视频| gogo亚洲国模私拍人体| 国产v日产∨综合v精品视频| 日韩大尺度视频| 国产高清在线观看免费不卡| 久久精品亚洲天堂| 国产成人鲁色资源国产91色综| 91蝌蚪视频在线| 国产老肥熟一区二区三区| 免费观看一区二区三区| 丁香婷婷综合色啪| 老司机免费视频| 国产成人综合网站| 天堂www中文在线资源| 91视频com| 性少妇bbw张开| 中文字幕一区二| 神马午夜精品91| 亚洲一区二区三区四区五区中文| 久久高清免费视频| 色综合视频在线观看| 国产精品无码粉嫩小泬| 欧美视频一二三区| 国产白浆在线观看| 亚洲国产日韩精品在线| 成人免费视频国产免费麻豆| 亚洲欧洲一区二区三区在线观看| 成人在线免费看| 精品国内自产拍在线观看| 啊啊啊久久久| 国产精品第一区| 国产成人免费视频网站视频社区| 国产精品久久久对白| 国产一区二区区别| 日本高清xxxx| 国产精品毛片| 无尽裸体动漫2d在线观看| 国产一区视频导航| 国产精品亚洲一区二区无码| www欧美成人18+| 亚洲人做受高潮| 婷婷综合五月天| 在线观看xxxx| 亚洲成人av在线播放| shkd中文字幕久久在线观看| 日韩视频在线一区| 2019中文字幕在线电影免费| 国产精品久久久av久久久| 欧美成人精品一级| 日韩精品一区二区三区外面| 欧美+亚洲+精品+三区| 国产精品入口免费软件| 国产精品一区二区免费不卡| 亚洲欧美视频在线播放| 日本一区二区视频在线观看| 久久国产在线观看| 欧美性感一类影片在线播放| 国产欧美一级片| 亚洲欧美日韩国产成人| 好了av在线| 欧美交受高潮1| 欧美一区二区三区婷婷| 久久精品国产理论片免费| 中文字幕亚洲精品乱码| 91香蕉视频污版| 成人福利视频网站| 外国一级黄色片| 欧美探花视频资源| 日本大片在线观看| 97香蕉久久夜色精品国产| 9999精品| 亚洲精品成人三区| 丝袜美腿高跟呻吟高潮一区| 日本精品一二三区| 中文字幕一区二区三区在线不卡 | 国产又粗又黄又猛| 精品二区三区线观看| 亚洲精品911| 久久人人爽亚洲精品天堂| 午夜精品久久久久久久久久蜜桃| 精品伊人久久大线蕉色首页| 欧美日韩三级| www激情五月| 亚洲欧美日韩国产综合| 少妇又紧又色又爽又刺激视频| 亚洲黄色www| 91福利区在线观看| 不卡一卡2卡3卡4卡精品在| 在线一区电影| 手机在线观看日韩av| 国产精品电影院| 国产精品亚洲欧美在线播放| 国产一区二区三区在线观看视频 | 亚州男人的天堂| 久久久久久久999| 激情小说亚洲色图| 欧美不卡在线播放| 国产精品资源在线观看| 欧美国产精品一二三| 日韩欧美一级在线播放| 成人观看网址| 极品尤物一区二区三区| 99香蕉国产精品偷在线观看| 黄色a一级视频| 精品久久久久久久久久国产| 午夜性色福利影院| 日韩美女视频免费看| 成人影院天天5g天天爽无毒影院| 三年中国国语在线播放免费| 国产日韩欧美麻豆| 天堂在线免费观看视频| 亚洲激情成人网| 亚洲最新无码中文字幕久久| 欧美最大成人综合网| 久久亚洲影院| 国产激情av在线| 欧美人妇做爰xxxⅹ性高电影 | 99久久婷婷国产一区二区三区| 久久久精品国产| 亚洲经典视频| 国产二区视频在线播放| 国产婷婷色一区二区三区| 在线观看精品国产| 一区二区三区国产视频| 日韩三级一区| 黄页免费在线观看视频| 国产亚洲人成网站| 成人h动漫精品一区二区下载| 中文字幕日韩欧美在线| 日韩欧美一级| 久久这里只有精品8| 99久久国产综合色|国产精品| 国产精品suv一区| 亚洲欧美激情视频| 青青伊人久久| 国产一区二区三区乱码| 国产欧美一区二区精品久导航| 国产日韩欧美一区二区东京热 | 欧美三级网址| 国产又大又长又粗又黄| 国产在线播放一区三区四| 九九热精彩视频| 在线国产精品视频| 成人知道污网站| 国内自拍视频网|