MSVC STL 结构体

std::vector<Ty>

struct std::vector<Ty>
{
	Ty *_Myfirst;
	Ty *_Mylast;
	Ty *_Myend;
};

std::string

struct std::string
{
	union _String_val
	{
		char _Buf[16];
		char *_Ptr;
		char _Alias[16];
	};
	unsigned __int64 _Mysize;
	unsigned __int64 _Myres;
}

std::map<Ty1, Ty2>

struct std::pair<Ty1, Ty2>
{
	Ty1 first;
	Ty2 second;
}
struct _Tree_node
{
	_Tree_node *_Left;
	_Tree_node *_Parent;
	_Tree_node *_Right;
	char _Color;
	char _Isnil;
	// padding byte
	// padding byte
	// padding byte
	// padding byte
	// padding byte
	// padding byte
	std::pair<Ty1, Ty2> _Myval;
};
struct std::map<Ty1, Ty2>
{
	_Tree_node *_Myhead;
	unsigned __int64 _Mysize;
};

std::unorderer_map<Ty1, Ty2>

struct std::pair<Ty1, Ty2>
{
	Ty1 first;
	Ty2 second;
}
struct _List_node
{
	_List_node *_Next;
	_List_node *_Prev;
	std::pair<Ty1, Ty2> _Myval;
};
struct _List_val
{
	_List_node *_Myhead;
	unsigned __int64 _Mysize;
};
struct _List_iterator
{
	_List_node *_Ptr;
};
struct _Hash_vec
{
	_List_iterator *_Myfirst;
	_List_iterator *_Mylast;
	_List_iterator *_Myend;
};
struct std::unordered_map<Ty1, Ty2>
{
    float _Traitsobj;
    // padding byte
    // padding byte
    // padding byte
    // padding byte
    _List_val _List;
    _Hash_vec _Vec;
    unsigned __int64 _Mask;
    unsigned __int64 _Maxidx;
};

std::shared_ptr<Ty>

struct _Ref_count_base
{
	_Ref_count_base_vtbl *__vftable;
	unsigned int _Uses;
	unsigned int _Weaks;
};
struct _Ref_count_base_vtbl
{
	void (__fastcall *_Destroy)(std::_Ref_count_base *this);
	void (__fastcall *_Delete_this)(std::_Ref_count_base *this);
	void (__fastcall *~_Ref_count_base)(std::_Ref_count_base *this);
	void *(__fastcall *_Get_deleter)(std::_Ref_count_base *this, const type_info *);
};
struct std::shared_ptr<Ty>
{
	Ty* _Ptr;
	_Ref_count_base *_Rep;
}
posted @ 2025-12-03 21:11  矛盾空间  阅读(3)  评论(0)    收藏  举报