最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Pylist的C++語言實現(xiàn)

2023-08-25 19:25 作者:YULINKING  | 我要投稿

我現(xiàn)在是一個在讀高三牲,平常的愛好就是搗鼓程序,我主要是用python語言的,但是我以前的信息老師說單學習一門語言對未來的工作是不利的,于是我現(xiàn)在經(jīng)常搞一些為學校專供的項目,都是基于多種(語言)開發(fā)的,現(xiàn)在差不多是全棧程序員。 最近開始搗鼓C++,希望能用C++來搞定我以前用Python開發(fā)的項目以提高效能和降低資源占用,但是我以前的項目都涉及到了多類型的列表,C++都是固定類型的,這對我很不利,但是以前也接觸過C語言,也算有一點了解,所以在網(wǎng)上沖浪找答案無果后我開始獨立構思,并且付諸實踐

這是我最開始的思路:首先建立一個PyType類,內(nèi)有類成員變量 char *valueType;

auto getValue();

我試圖用再賦值的方式來控制返回值的類型: auto getValue(){

return value;

}

this->getValue=getValue;

但是沒一會就發(fā)現(xiàn)好像沒辦法賦值。。。 難道就要止步于此了嗎? 不不不,我發(fā)現(xiàn)了這個: template

那么到這里邏輯就很清晰了,直接做一個容器PyType,用 private:

??std::string valueType;

??void* value;

先聲明變量value 接著就可以在初始化函數(shù)里完成一系列的邏輯了, 最后在PyList中一個一個的把用戶傳入的value賦值給PyType,然后儲存到std::vector values;中 在校生本來時間也不充裕就講到這吧,代碼貼出來大家研究一下 #include #include #include #include class PyType { private: ??std::string valueType; ??void* value; public: ??template ??PyType(T __value__) { ????valueType = typeid(__value__).name(); ????value = new T(__value__); ??} ??template ??T getValue() { ????return *static_cast(value); ??} ??std::string getType() { ????return valueType; ??} }; class PyList { private: ??std::vector values; public: ??PyList() {} ??template ??void append(T value) { ????values.push_back(PyType(value)); ??} ??template ??T get(int index) { ????return values[index].getValue(); ??} ??std::string getType(int index){ ????return values[index].getType(); ??} ??int getlength(){ ????return(values.size()); ??} }; int main() { ??PyList mylist; ??mylist.append(10); ??mylist.append("Hello"); ??mylist.append(3.14); ??mylist.append(" Hello World! "); ??for(int i=0;i<100;i++){ ????mylist.append(i); ??} ??// std::cout << "Element at index 0: " << mylist.get(0) << std::endl; ??// std::cout << "Element at index 1: " << mylist.get(1) << std::endl; ??// std::cout << "Element at index 2: " << mylist.get(2) << std::endl; ??for(int i=0;i(i); ????}else if (typeofValue=="NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"){ ??????std::cout<(i); ????}else if (typeofValue=="d"){ ??????std::cout<(i); ????} ????//添加換行符 ????std::cout<

Pylist的C++語言實現(xiàn)的評論 (共 條)

分享到微博請遵守國家法律
新巴尔虎右旗| 武川县| 遂溪县| 尚义县| 恩施市| 绥江县| 茌平县| 慈溪市| 谢通门县| 苏尼特左旗| 灵璧县| 肃宁县| 乐亭县| 盱眙县| 禹州市| 梧州市| 邛崃市| 射洪县| 贵州省| 康定县| 宜宾市| 黔西县| 南部县| 韶山市| 通许县| 海城市| 新乡市| 天祝| 罗田县| 永嘉县| 轮台县| 太白县| 广元市| 合阳县| 南平市| 绿春县| 廊坊市| 莱芜市| 十堰市| 商南县| 克东县|