3 回答
TA貢獻2041條經驗 獲得超4個贊
背景/概況
malloc / newnew
std::stringnew char [size]std::stringchar [20]new
實施細節
std::string
大小 容量 數據的位置
std::string::size_typesizesize_typeend
你不用付錢。
class string {public:
// all 83 member functionsprivate:
std::unique_ptr<char[]> m_data;
size_type m_size;
size_type m_capacity;
std::array<char, 16> m_sso;};std::stringm_size <= 16m_ssom_size > 16m_sso
class string {public:
// all 83 member functionsprivate:
size_type m_size;
union {
class {
// This is probably better designed as an array-like class
std::unique_ptr<char[]> m_data;
size_type m_capacity;
} m_large;
std::array<char, sizeof(m_large)> m_small;
};};- 3 回答
- 0 關注
- 678 瀏覽
添加回答
舉報
