由於我大部分時間都在使用數組,因此我想創建一個使用向量執行插入,刪除,搜索和其他操作的類。在C++中創建一個通用實用類
arrOperation obj = new arrOperation();
obj.insert(arr,val);
如上圖所示,我創建用於其中我寫爲插入,刪除和其他操作的代碼的一般工具類的對象。我的問題是,編寫這樣一個類並使用其中的函數是否好,或者在同一類中插入,刪除函數是否好?我需要一些關於我可以製作代碼的區域的一些想法,並且可以在我需要時重複使用
由於我大部分時間都在使用數組,因此我想創建一個使用向量執行插入,刪除,搜索和其他操作的類。在C++中創建一個通用實用類
arrOperation obj = new arrOperation();
obj.insert(arr,val);
如上圖所示,我創建用於其中我寫爲插入,刪除和其他操作的代碼的一般工具類的對象。我的問題是,編寫這樣一個類並使用其中的函數是否好,或者在同一類中插入,刪除函數是否好?我需要一些關於我可以製作代碼的區域的一些想法,並且可以在我需要時重複使用
聽起來像你想要的是std::vector
類。追加將是push_back(val),insert
是insert
,而remove
是erase
。
是的,對不起。我真的搞砸了。我在想陣列和我張貼的載體。 – srinath
當你在你的問題中說「vector」時,你似乎正在談論一個內置數組。如果是這樣的話,請看看std::vector<T>
,這幾乎可以做你正在尋找的東西。
如果您正在討論打包某些在std::vector<T>
中未提供的操作,那麼您應該考慮將它們應用於合適順序的「算法」。例如,std::vector<T>
沒有用於對其元素進行排序的方法,但有一種算法std::sort()
,它可以對任何隨機訪問序列進行排序,例如std::vector<T>
(只要存在針對類型T
定義的嚴格的弱順序,當然)。
如果您想用Java編程,請使用Java。 在堆上創建對象以向其他對象提供函數並不是C++的意思。
您可以使用自由函數,在現有類型上編寫頻繁的操作。
如果您需要動態內存,則可以使用標準庫類。
提供操作的類僅適用於不允許自由函數存在的語言。
這個答案應該提及命名空間和靜態成員函數? –
是的......但他們不添加「功能」:只是「組織」。命名空間函數和靜態成員都像自由函數一樣起作用:它們不綁定任何對象(並且在它們的主體中沒有看到任何「this」)。我的觀點是要證明,功能可以獨立於「載體對象」而存在 –
沒有違法意圖,但我真的看不到那個階級的觀點。它帶來了什麼?例如,'obj.insert(vec,val)'比'vec.push_back(val)'更好嗎? – qdii
我已經更新了代碼,希望這意味着現在的東西 – srinath
鑑於你的示例代碼完全無償地包含'new',我將假裝出去,並假設你最近來自一個非常不同的編程背景,因此我會說「不,不要做那樣的事情」。相反,習慣於應該已經涵蓋你的需求的C++習語。 –