精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

黄色正能量网站| 日韩午夜视频在线观看| 青青草手机在线观看| 日韩视频1区| 亚洲午夜久久久| 日韩高清av电影| 国产欧美一级片| 美女精品一区| 欧美精品性视频| 全黄一级裸体片| 日韩精品成人| 欧美唯美清纯偷拍| 无码 制服 丝袜 国产 另类| 番号在线播放| a亚洲天堂av| 国产一区视频在线| 国产成人精品网| 欧美视频亚洲视频| 在线观看不卡av| 88av在线播放| 国产精品igao视频网网址不卡日韩 | 午夜精品福利一区二区三区av| 天天人人精品| 欧美日韩免费做爰大片| 国产成人av影院| 国产日韩精品综合网站| 国产成人精品777777| 亚洲天堂成人| 美日韩精品视频免费看| 永久免费观看片现看| 婷婷成人在线| 精品国产乱码久久久久久闺蜜| 香蕉视频禁止18| 超碰超碰人人人人精品| 亚洲午夜激情av| 99久re热视频精品98| 素人av在线| 国产欧美精品在线观看| 玖玖玖精品中文字幕| 性一交一乱一伧老太| 国产一区欧美日韩| 国产精品久久久久久搜索 | 欧美精品黑人性xxxx| 一本久道中文无码字幕av| 人狥杂交一区欧美二区| 亚洲18女电影在线观看| 欧美视频在线观看视频| 日本片在线观看| 一区二区三区四区蜜桃| 在线观看视频黄色| 黄色在线视频网站| 亚洲欧洲成人精品av97| 亚洲第一页在线视频| 在线国产情侣| 亚洲日穴在线视频| 久久天天东北熟女毛茸茸| 国产传媒在线播放| 亚洲美女在线国产| 国产精品69久久久| 91九色porn在线资源| 精品久久久久久久久中文字幕 | 黄色在线免费观看网站| 黄色91在线观看| 久久久免费视频网站| 韩国主播福利视频一区二区三区| 色综合天天综合在线视频| 久久人妻精品白浆国产 | 欧美日本高清视频在线观看| 第四色婷婷基地| а天堂中文最新一区二区三区| 91精品国产综合久久婷婷香蕉| 九九九久久久久久久| 18国产精品| 亚洲美女av网站| 日本美女bbw| 欧美日韩国产高清| 欧美亚洲另类视频| 伊人22222| 粉嫩嫩av羞羞动漫久久久| 精品无码久久久久国产| 国产精品影院在线| 亚洲女与黑人做爰| 黄色国产一级视频| 精品裸体bbb| 日韩午夜激情av| 无码精品一区二区三区在线播放| 国产精品一区2区3区| 久久精品国产综合| 国产精品视频久久久久久久| 久久精品国产在热久久| 粉嫩精品一区二区三区在线观看| 亚洲av电影一区| 中文av一区特黄| 我的公把我弄高潮了视频| 肉色欧美久久久久久久免费看| 7777精品伊人久久久大香线蕉的 | 制服丝袜日韩国产| 亚洲第一成肉网| 视频福利一区| 成年人精品视频| 麻豆精品久久久久久久99蜜桃| 精品一区二区在线看| 国产另类自拍| 素人av在线| 日韩欧美主播在线| 日本黄色三级网站| 欧美一区二区三| 久久人人爽人人爽人人片av高清| 中文字幕第三页| av男人天堂一区| 一区二区三区四区免费观看| 欧美天堂视频| 精品国产电影一区二区| 国产精品18在线| 99热免费精品| 99九九视频| 日本www在线观看视频| 精品国产鲁一鲁一区二区张丽| 污视频网址在线观看| 一道本一区二区三区| 欧美精品久久久久久久| 久久草视频在线| 国产乱码字幕精品高清av| 色一情一区二区三区四区| 色偷偷偷在线视频播放| 亚洲国产成人一区| 免费在线观看亚洲| 国产一区二区三区在线观看免费| 先锋影音一区二区三区| 大胆人体一区二区| 亚洲精品国产精品自产a区红杏吧| 私库av在线播放| 国产一区二区三区不卡在线观看| 日韩欧美视频一区二区| 国产高清不卡| 国产偷亚洲偷欧美偷精品| www.av视频在线观看| 国产米奇在线777精品观看| 在线观看欧美亚洲| 日韩美女在线| 日韩中文字幕视频在线| 伊人22222| 亚洲色图欧洲色图婷婷| 国产永久免费网站| 亚洲电影在线一区二区三区| 成人免费网站在线| 亚洲精品一区二区在线| 成人免费毛片男人用品| 久久精品亚洲麻豆av一区二区 | www..com国产| 91片在线免费观看| 国产精品丝袜久久久久久消防器材| 猫咪成人在线观看| 欧美在线一区二区视频| 国产在线日本| 欧美日韩国产大片| 午夜精品一区二区三级视频| 国产中文一区二区三区| 超薄肉色丝袜足j调教99| 精品一区二区三区亚洲| 久久91精品国产91久久久| 亚洲av无码乱码国产精品久久| 亚洲图片欧美视频| 国产精品1000部啪视频| 天堂蜜桃91精品| 亚洲日本理论电影| 久久免费精品| 2020久久国产精品| 国产小视频免费在线观看| 精品视频在线免费观看| 欧洲猛交xxxx乱大交3| 成人自拍视频在线| 欧美综合在线观看视频| 99久久视频| 国产精品综合久久久久久| 欧美成人a交片免费看| 色99之美女主播在线视频| 亚洲国产精品久久久久久6q| 天天免费综合色| 久久久久亚洲AV成人无在| 国产一区二区在线观看视频| 国产深夜男女无套内射| 日产精品一区二区| 国产激情美女久久久久久吹潮| 热三久草你在线| 日韩视频免费在线| 五月婷婷在线播放| 欧美狂野另类xxxxoooo| 日本五十熟hd丰满| 国产精品国产成人国产三级| 在线看黄色的网站| 奇米一区二区三区| 国产精品自拍合集| 欧美肉体xxxx裸体137大胆| 97超级碰碰| 欧美日韩视频免费观看| 色综合久久久888| 春暖花开成人亚洲区| 精品捆绑美女sm三区| 中文字幕乱码中文字幕| 亚洲成人自拍一区| 欧美成人久久久免费播放| av不卡免费在线观看| 欧美视频国产视频| 亚洲影院免费| 黄网站色视频免费观看| 成人激情电影在线| 久久久婷婷一区二区三区不卡| 日本一区二区三区视频在线看| 国产成人鲁鲁免费视频a| 久久久123| 欧美成人中文字幕在线| 都市激情一区| 亚洲精品一区二三区不卡| 亚洲av综合色区无码一区爱av | 亚洲美女精品视频| 精品一区二区三区视频| 无码人妻丰满熟妇区五十路百度| 韩国av一区| 四虎影院一区二区| 成人精品久久| 欧美日韩在线观看一区| 国偷自产av一区二区三区| 亚洲精品欧美日韩| 欧美高清你懂的| 国产精品麻豆va在线播放| 久久uomeier| 欧美中文字幕视频| 妞干网免费在线视频| 国内精品久久久久伊人av| 青青草视频在线免费直播| 久久久精品免费视频| 在线免费av电影| 色悠悠久久久久| 99re热久久这里只有精品34| 亚洲午夜国产成人av电影男同| 色就是色亚洲色图| 国产偷国产偷亚洲清高网站| 四虎影院在线域名免费观看| 亚洲级视频在线观看免费1级| 亚洲精品久久久久久动漫器材一区| 欧美一区二区三区思思人| 国产精品九九九九| 91精品国产综合久久精品麻豆 | 26uuu国产在线精品一区二区| 国模无码视频一区| 成人av电影在线| 日本护士做爰视频| 91在线看国产| 深爱五月激情网| 久久久久久久久伊人| 一区二区黄色片| 欧美激情在线免费观看| 国产又粗又猛又爽又黄的视频小说| 国产精品国产三级国产aⅴ无密码| 自拍偷拍第9页| 亚洲色图都市小说| 黄色激情视频在线观看| 欧美视频中文字幕在线| 成人小视频在线播放| 欧美日韩国产一二三| 国产情侣一区二区| 亚洲成**性毛茸茸| 欧洲毛片在线| 色噜噜国产精品视频一区二区| 99久久精品免费观看国产| 欧美第一淫aaasss性| 韩日毛片在线观看| 国产精品视频精品| aiai久久| 日韩区国产区| 综合五月婷婷| 日本三级免费网站| 麻豆91精品视频| jjzz黄色片| 久久精品一区蜜桃臀影院| 国产精品国产精品88| 午夜精品一区在线观看| 精品一区二区无码| 日韩一区二区免费电影| 天堂中文在线资| 久久久精品影院| 乡村艳史在线观看| 成人免费直播live| 偷拍一区二区| 91免费视频黄| 午夜一区不卡| 亚洲成人av免费观看| 久久亚洲一区二区三区四区| 欧美爱爱免费视频| 一本大道av一区二区在线播放| 国产精品视频第一页| 日韩激情第一页| 国精产品一区| 国产成人精品一区二区| 一区二区三区四区视频免费观看 | 国产成人免费电影| 成人羞羞网站| 精品这里只有精品| 国产在线精品不卡| 欧美人与性囗牲恔配| 亚洲国产日韩a在线播放性色| 中文字幕在线观看欧美| 日韩高清人体午夜| 亚洲性图自拍| 国产综合香蕉五月婷在线| 综合亚洲色图| 成人毛片100部免费看| 欧美a级一区二区| 一起草在线视频| 亚洲一区二区美女| 国产精品毛片一区视频播| 一区二区亚洲欧洲国产日韩| av电影免费在线看| 99久久一区三区四区免费| 婷婷色综合网| 欧美成年人视频在线观看| 久久综合九色综合97婷婷| 精品在线视频免费| 日韩三级视频在线观看| 女女色综合影院| 国产精品一区久久| 教室别恋欧美无删减版| 91视频最新入口| 99精品国产99久久久久久白柏| 欧美黄片一区二区三区| 欧美一区二区三区四区高清| 天天综合视频在线观看| 国产区亚洲区欧美区| 欧美一级精品| www.日本xxxx| 国产欧美一区在线| 最近国语视频在线观看免费播放| 亚洲毛片在线观看.| 成人小电影网站| 欧美日韩一区二区三区在线视频| 国产精品日韩久久久| www.自拍偷拍| 欧洲人成人精品| aaa日本高清在线播放免费观看| 国产精品扒开腿做爽爽爽视频 | 日韩在线激情视频| 草莓视频成人appios| 亚洲高清在线观看一区| 美洲天堂一区二卡三卡四卡视频| 国产黄色录像视频| 欧美日韩国产综合一区二区| 在线国产情侣| 91超碰在线免费观看| 欧美日韩亚洲国产精品| 国产人成视频在线观看| 欧美性xxxx极品hd满灌| 国产精品一级伦理| 国产美女主播一区| 亚洲成人日韩| 波多野结衣加勒比| 精品福利在线观看| 久蕉在线视频| 国产欧美日韩精品专区| 亚洲中无吗在线| 成年女人免费视频| 色综合久久中文字幕综合网| 番号集在线观看| 91老司机在线| 亚洲日本黄色| 手机看片福利视频| 91精品国产综合久久香蕉麻豆| av电影免费在线看| 日韩精品久久一区| 麻豆成人久久精品二区三区小说| 青娱乐国产盛宴| 日韩禁在线播放| 久久亚洲国产精品尤物| 亚洲色欲久久久综合网东京热| 久久久久国产精品人| 一区二区美女视频| 久久久久久久久久久久久久久久久久av | 欧美日韩国产小视频| xxxx视频在线| 亚洲高清视频一区二区| 不卡一区二区三区四区| 久久国产香蕉视频| 欧美精品18videosex性欧美| 国产伦精品一区二区三区视频| 91大神免费观看| 日韩欧美福利视频| 五月花成人网| 亚洲ai欧洲av| 不卡的av电影在线观看| 在线观看中文字幕码| 91国产美女在线观看| 999国产精品999久久久久久| 国产乱了高清露脸对白| 制服丝袜亚洲网站| www成人在线视频| 亚洲精品蜜桃久久久久久| 国产精品久久99| 视频三区在线观看| 成人欧美一区二区三区视频xxx| 日韩av不卡在线观看|