c++如何声明动态的结构体数组
例如这样intcount;structitem{intexponent;};intmain(){item*items;cin>>count;newstructitemtm...
例如这样
int count;
struct item
{
int exponent;
};
int main(){
item* items;
cin>>count;
new struct item tmp[count];
items=tmp;
}
但编译是不通过的……总之我想用cin的值来确定结构体数组的大小 展开
int count;
struct item
{
int exponent;
};
int main(){
item* items;
cin>>count;
new struct item tmp[count];
items=tmp;
}
但编译是不通过的……总之我想用cin的值来确定结构体数组的大小 展开
2个回答
展开全部
可以在结构体中添加指针类成员变量,并在成员函数中实现动态数组的分配。
以下以一个仅实现整型动态数组,不包含其它功能的类为例做说明。
class array //类名
{
public:
int *v; //动态数组首地址。
int length; //动态数组长度。
array(int len)
{
if(len <= 0)//初始化长度非法。
{
length = 0;
v = NULL;
}
else
{
length = len;
v = new int[length];//内存分配。
}
}
~array()
{
delete [] v;//析构中释放内存。
}
};
以下以一个仅实现整型动态数组,不包含其它功能的类为例做说明。
class array //类名
{
public:
int *v; //动态数组首地址。
int length; //动态数组长度。
array(int len)
{
if(len <= 0)//初始化长度非法。
{
length = 0;
v = NULL;
}
else
{
length = len;
v = new int[length];//内存分配。
}
}
~array()
{
delete [] v;//析构中释放内存。
}
};
展开全部
#include <vector>
struct item
{
int exponent;
};
int main(){
int count;
cin>>count;
std::vector<struct item> items(count);
// 把items当成普通数组来用
}
追问
。。能不用vector么
追答
deque 和 list 坑多一些,不过也许同样能用
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询