C++ 向量声明和大小分配

C++ 向量声明和大小分配,c++,C++,这与我的工作有关。这里的一个建议是在类区域中使用向量。。如以下代码所示。我还有几个初学者的问题-- a)如何分配此向量a size=numf区域?或者我真的需要为向量分配大小吗 b)如何将类区域的对象插入此向量?所有这些区域对象都需要由A类管理 c)我假设我不需要删除类A的distructor中的这个向量。。对吗 struct elemt { int* vertex; int foo1; double foo2; }; class Region{ public:

这与我的工作有关。这里的一个建议是在类区域中使用向量。。如以下代码所示。我还有几个初学者的问题--

a)如何分配此向量a size=numf区域?或者我真的需要为向量分配大小吗

b)如何将类区域的对象插入此
向量
?所有这些区域对象都需要由A类管理

c)我假设我不需要删除类A的distructor中的这个向量。。对吗

struct elemt {
  int* vertex; 
  int foo1;
  double foo2;
};


class Region{
   public:
      std::vector <elemt*> elements;   
      int info;
}



class A{
public:
    std::vector<Region> reg;
    const int numOfRegions = 100;
}
A::A(){
    // how to create and append Region object to vector std::vector<Region> reg ??
    // Do I need to allocate size for this region vector? 
}

A::~A(){
  //do nothing
 // Do I need to delete vector<Region> reg here ??
}

A::doSomething(){

// here I want to append the elements to the vector
// Let i be region 10. 
// Let e1 be an element of "struct elemt" that needs to be added

  reg[i].elements.push_back(e1);

}
结构元素{ int*顶点; int foo1; 双foo2; }; 阶级地区{ 公众: std::向量元素; 国际信息; } 甲级{ 公众: std::vector reg; 常量int numOfRegions=100; } A::A(){ //如何创建区域对象并将其附加到vector std::vector reg?? //我需要为此区域向量分配大小吗? } A::~A(){ //无所事事 //我需要在这里删除矢量注册表吗?? } A::doSomething(){ //这里我想把元素附加到向量上 //让我谈谈第10区。 //设e1为需要添加的“struct elemt”元素 reg[i]。元素。推回(e1); }
  • 如果事先知道向量的大小,请致电vector.reserve。这不是必需的,因为“向后推”将在需要时调整向量的大小

  • vector.push_back(Region())

  • 您不必删除成员向量

  • 如果事先知道向量的大小,请致电vector.reserve。这不是必需的,因为“向后推”将在需要时调整向量的大小

  • vector.push_back(Region())

  • 您不必删除成员向量

  • a)矢量为您完成所有内存管理,您无需指定大小。但是,如果需要,可以调用
    vector::reserve
    来分配足够的内存(这只是一个优化问题)

    b)
    reg.push_back(Region())

    c)不必删除堆栈中的向量。但是您可能想要删除类
    区域中向量
    元素的内容

    a)向量为您执行所有内存管理,您不需要指定大小。但是,如果需要,可以调用
    vector::reserve
    来分配足够的内存(这只是一个优化问题)

    b)
    reg.push_back(Region())


    c)不必删除堆栈中的向量。但是您可能想要删除类
    区域中的向量
    元素
    的内容

    您似乎在没有编译器的情况下编写此程序。为什么要这样限制你自己呢?而且,你似乎对STL和C++的看法相当迷茫。也许你应该先学习一些基本材料,然后再编写代码。例如,请参见以下内容:。C++有一个陡峭的学习曲线,如果你不摸索基础知识,你就不会走得太远。我正在阅读材料。有很多东西要学。顺便说一句,你能解释一下用户f4在下面的评论中的意思吗?(见我的回答)你似乎在没有编译器的情况下编写这个程序。为什么要这样限制你自己呢?而且,你似乎对STL和C++的看法相当迷茫。也许你应该先学习一些基本材料,然后再编写代码。例如,请参见以下内容:。C++有一个陡峭的学习曲线,如果你不摸索基础知识,你就不会走得太远。我正在阅读材料。有很多东西要学。顺便说一句,你能解释一下用户f4在下面的评论中的意思吗?(见我的回复)@f4:谢谢。。。你能举例说明c点吗?你的意思是我应该在类区域的析构函数中执行。。。举个例子,真的很有帮助。。。而且,向量元素只有“指向”元素的指针“在其他地方创建的实例。我还需要删除类区域中向量元素的内容吗?他的意思是必须有人负责删除
    元素
    对象,但你在另一个问题中说这是其他类的责任,所以我想你不用在
    区域
    的析构函数中做任何事情就可以了。如果有其他类负责删除元素,则可以。记住向量不会帮你的:)@f4:谢谢。。。你能举例说明c点吗?你的意思是我应该在类区域的析构函数中执行。。。举个例子,真的很有帮助。。。而且,向量元素只有“指向”元素的指针“在其他地方创建的实例。我还需要删除类区域中向量元素的内容吗?他的意思是必须有人负责删除
    元素
    对象,但你在另一个问题中说这是其他类的责任,所以我想你不用在
    区域
    的析构函数中做任何事情就可以了。如果有其他类负责删除元素,则可以。请记住,向量不会为您做这件事:)