c和c++的轉換-2 list

 

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++讓你更多的考慮自己的業務概念,而不是內存模型。分野就在於此。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章