c++ 標準庫內有很帥的容器,比如list,hash等等。需要構造一個字符串列表,只要:
// list
#include <list>
#include <algorithm>
using namespace std;
list<string> list_make()
{
// c++ style
string a ="hello";
string b ="world by c++";
list<string> lst ;
lst.push_back(a);
lst.push_back(b);
return lst;
}
c的想看嗎?算了,你想看我不想寫。因爲都是動態分配的指針。c沒有基本的string類型,需要自己用buf模擬。沒有動態數據結構,需要自己用指針串接。想想也頭大。如果那個地方指針分配不對,c就會以暴烈的方式掛掉。
我用c寫了一個find_files的函數,希望它返回一個目錄內的全部符合通配符的文件,然後爲這個返回的list頭大。最後還是用一個buf,通過|來分隔的方式返回,表達我的list概念。
c逼迫你在腦袋裏面裝入一個內存佈局,而不是你的業務概念,這就是爲什麼說c更加傾向於機器而不是程序員。c++讓你更多的考慮自己的業務概念,而不是內存模型。分野就在於此。