las*_*gar 4 c++ arrays memory-management vector set
我需要一个std::set
数组中每个元素的功能.我该如何实现此功能?
我开始在C++中分配std set的动态数组,如下所示:
set<int>* entry;
Run Code Online (Sandbox Code Playgroud)
然后分配:
entry = (set<int>*)malloc(sizeof(set<int>)*32);
Run Code Online (Sandbox Code Playgroud)
没有编译问题,但是当访问任何元素时,运行时失败并出现分段错误:
entry[0].insert(23);
Run Code Online (Sandbox Code Playgroud)
任何帮助都非常感谢.
Tem*_*Rex 11
关于什么
#include <set>
#include <vector>
int main()
{
std::vector < std::set<int> > entry(32); // std::vector constructor makes 32 calls to std::set<int> constructor
entry[0].insert(23);
// std::vector destructor makes 32 calls to std::set<int> destructor
}
Run Code Online (Sandbox Code Playgroud)
在c ++中,你用内存分配内存new
.与malloc的不同之处在于调用构造函数来初始化内存.
entry = new set<int>[32];
Run Code Online (Sandbox Code Playgroud)