unique-ptr

    1熱度

    1回答

    今天我是通過在Visual Studio C++實現的源代碼挖掘和整個的std ::的unique_ptr的以下行絆倒: template<class _Ty,class _Dx> class unique_ptr<_Ty[], _Dx> 我明白的第一行。第二行讓我感到驚訝。爲什麼類的名稱背後有模板參數?那是什麼意思?可能它與這是unique_ptr的數組變體有關嗎?

    0熱度

    1回答

    我得到了類,它包含的unique_ptr陣列下面的構造 template <class T> MyVector<T>::MyVector() : p_capacity(2), p_size(0) { p_array = std::make_unique<T[]>(p_capacity); } 我想在這樣的成員方法後重新初始化,將舊的陣列到新的數組多數民衆贊成在2倍大 templ

    2熱度

    1回答

    我有一個類 class A { public: A(int x): x_(x) {} void SetValue(int m) {x_=m}; private: DISALLOW_COPY_AND_ASSIGN(A); }; 我試圖創建A型 vector<std::unique_ptr<A>> objects; objects.reserve(10);

    0熱度

    1回答

    我的代碼如下所示: template<class T> class tree{ class node{ std::unique_ptr<node<T>> left; std::unique_ptr<node<T>> right; T data; }; }; 如何使「左」或「右」訪問樹類,而不存取或改變者?多種解決方案將不勝感激。

    6熱度

    2回答

    我正在更新一些pre-C++ 11代碼以使用C++ 11 unique_ptrs。 我不確定如何處理的一件事是舊代碼使用指針分配作爲條件。例如。 Object* obj; while (obj = C_LIBRARY_CALL_WHICH_RETURNS_NEW_OBJECT()) { // do something with obj delete obj; } 鑑於

    2熱度

    1回答

    我很想問這是否是一種好的做法。讓我們假設這樣的場景: std::vector<unique_ptr<Model>> data; 它是安全與此向量(原始指針從向量中的每個的unique_ptr)的原始指針工作?我明白,當超過保留空間時,向量可能會重新分配數據,但只會影響unique_ptr的地址,而內部原始指針保證保持不變。 因此,通過使用這些原始指針而不是添加一些id成員來識別模型是否安全?

    0熱度

    1回答

    略讀通過TensorFlow C++ API我偶然發現了一個奇怪的函數簽名: Status Create( const FileSystemStoragePathSourceConfig & config, std::unique_ptr<FileSystemStoragePathSource> *result ) 我不明白爲什麼result是一個原始指針unique_pt

    0熱度

    1回答

    代碼粘貼在下面的一些註釋。我需要看一下std::priority_queue<std::unique_ptr<...>>的頂部,但是如果我調用.top(),則會出現編譯器錯誤:「試圖引用已刪除的函數」。我知道我可以調用pop,但是我需要先根據值來做一些邏輯來確定是否要彈出它。 struct MyStruct { int val = 2; MyStruct(const int

    1熱度

    3回答

    我在priority_queue中有一個unique_ptr,我想從該集合中移除它並將其放在deque上,同時保持unique_ptr的所有權語義。但我找不到一種方法將其從priority_queue中解脫出來,而不會出現編譯錯誤:「嘗試引用已刪除的函數」。什麼是正確的方式來實現這一目標? struct MyStruct { int val = 2; MyStruct(con

    9熱度

    1回答

    爲什麼不按照我的假設工作? for (auto it: *std::make_unique<std::vector<int>>(std::vector<int>({1, 2, 3, 4, 5}))) std::cout << it << std::endl; 的矢量對象執行循環的第一次迭代之前銷燬