C++ 向量声明和大小分配
这与我的工作有关。这里的一个建议是在类区域中使用向量。。如以下代码所示。我还有几个初学者的问题-- a)如何分配此向量a size=numf区域?或者我真的需要为向量分配大小吗 b)如何将类区域的对象插入此C++ 向量声明和大小分配,c++,C++,这与我的工作有关。这里的一个建议是在类区域中使用向量。。如以下代码所示。我还有几个初学者的问题-- a)如何分配此向量a size=numf区域?或者我真的需要为向量分配大小吗 b)如何将类区域的对象插入此向量?所有这些区域对象都需要由A类管理 c)我假设我不需要删除类A的distructor中的这个向量。。对吗 struct elemt { int* vertex; int foo1; double foo2; }; class Region{ public:
向量
?所有这些区域对象都需要由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
来分配足够的内存(这只是一个优化问题)
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点吗?你的意思是我应该在类区域的析构函数中执行。。。举个例子,真的很有帮助。。。而且,向量元素只有“指向”元素的指针“在其他地方创建的实例。我还需要删除类区域中向量元素的内容吗?他的意思是必须有人负责删除元素
对象,但你在另一个问题中说这是其他类的责任,所以我想你不用在区域
的析构函数中做任何事情就可以了。如果有其他类负责删除元素,则可以。请记住,向量不会为您做这件事:)