如果输入的数据量过大还能用数组来存储么?

marvolo666 2015-10-02 12:02:33
有一题是这样的 输入的数据形式如下:
第一行为n 0<n<200000
后面为n个整数





问题在于n有可能有20万个 那么能申请一个20w个元素的数组么?
因为默认的栈大小是1M所以数组上限应该是1024*1024/单个元素大小吧?


那么这种题应该用什么方法存储输入的数据?
...全文
304 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lm_whales 2015-10-02
  • 打赏
  • 举报
回复
1M是100 W 20W int 也才 0.80M 在栈上 也勉强可以的 不过在静态区,或者堆上更好
ri_aje 2015-10-02
  • 打赏
  • 举报
回复
用 malloc 存在堆上就行了。
paschen 2015-10-02
  • 打赏
  • 举报
回复
可以动态分配,也就是在堆上分配,栈可能不够了,20万还不算大,如果更大的话可以考虑用数据库管理
iyomumx 2015-10-02
  • 打赏
  • 举报
回复
你可以malloc
void_main_void 2015-10-02
  • 打赏
  • 举报
回复
队列不是好方法。那么大的东西得用 std::map来存储了。 因为数组是连续内存空间,不能存在间隔。所以首先申请20W个元素都是一个问题。 不适用链表是因为链表查询效率慢。 使用map来存储因为map使用树结构,而且设置一个KEY值查找速度也比链表快。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧