में मेमोरी को सही ढंग से आवंटित करें मैं प्रोग्रामिंग अभ्यास के रूप में std::vector
को लागू करने की कोशिश कर रहा हूं।वेक्टर
पर विचार करें निम्नलिखित कोड का टुकड़ा:
template <class T, class Allocator = std::allocator<T>>
class vector
{
public:
using size_type = size_t;
using allocator_type = Allocator;
...
private:
T* m_data;
allocator_type m_alloc;
size_type m_capacity;
...
};
m_data
टाइप T*
है। मुझे std::allocator_traits<allocator_type>::allocate(m_alloc, m_capacity)
का उपयोग करके स्मृति आवंटित करने की आवश्यकता है जो std::allocator_traits<allocator_type>::pointer
देता है।
मैं मान सकते हैं कि pointer
परोक्ष T*
लिए डाली जा सकती है और allocate
से m_data
को लौट मूल्य निर्दिष्ट?
यदि नहीं, vector
में मेमोरी सही ढंग से आवंटित करने के लिए कैसे करें?
आप अपना खुद का आवंटक बना सकते हैं। –
संबंधित: http://stackoverflow.com/q/28521203/ – dyp