我是使用共享和唯一指針的新手,我嘗試使用共享指針創建鏈接列表,但是,我的程序不斷隨機崩潰。C++ make_shared和.get()
請給我有用的建議和/或鏈接的書籍,以便我更好的理解,這是一個新的C++功能。
我試圖解決這個問題,本文給出了https://leetcode.com/problems/add-two-numbers/description/
和API需要ListNode *被作爲參數傳入,所以我只是想在不使用裸新創建一些測試數據...
隨機發生崩潰使用make_shared:
int main(int argc, const char * argv[]) {
ListNode* list1 = (make_shared<ListNode>(2)).get();
list1->next = (make_shared<ListNode>(4)).get();
list1->next->next = (make_shared<ListNode>(3)).get();
ListNode* list2 = (make_shared<ListNode>(5)).get();
list2->next = (make_shared<ListNode>(6)).get();
list2->next->next = (make_shared<ListNode>(4)).get();
Solution solution;
ListNode* result = solution.addTwoNumbers(list1, list2);
該工程確定:
int main(int argc, const char * argv[]) {
ListNode* list1 = new ListNode(2);
list1->next = new ListNode(4);
list1->next->next = new ListNode(3);
ListNode* list2 = new ListNode(5);
list2->next = new ListNode(6);
list2->next->next = new ListNode(4);
Solution solution;
ListNode* result = solution.addTwoNumbers(list1, list2);
你到底想通過實現'make_shared(...)得到()'? – melpomene