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的值来确定结构体数组的大小
展开
 我来答
出与美肉深笑1i
2015-12-09 · TA获得超过1.4万个赞
知道大有可为答主
回答量:8750
采纳率:88%
帮助的人:8727万
展开全部
可以在结构体中添加指针类成员变量,并在成员函数中实现动态数组的分配。
以下以一个仅实现整型动态数组,不包含其它功能的类为例做说明。
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;//析构中释放内存。
}
};
zjfaok
推荐于2018-03-14 · TA获得超过6805个赞
知道大有可为答主
回答量:4146
采纳率:62%
帮助的人:1565万
展开全部
#include <vector>
struct item
{
int exponent;
};
int main(){
        int count;
cin>>count;
std::vector<struct item> items(count);
// 把items当成普通数组来用
}
追问
。。能不用vector么
追答
deque 和 list 坑多一些,不过也许同样能用
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式