w*****3 发帖数: 101 | 1 郁闷死我了,help
一个简单的循环, 每次运算的结果存在一个vector里面,
程序在小数据的情况下没问题,
然后我定义一个
vector v(3000000000,false);
跑着跑着就当掉了,说write violation
我查了一下vector可以没有超过max_size
cout<
我的问题是:
1)如何知道这个vector是在哪分的空间,heap 还是 stack
2)是不是有什么参数可以调整程序可分配的空间 |
k*****2 发帖数: 252 | 2 代码没写好吧
好像Eff C++还是More Eff C++里不推荐用vect,不如用bitset |
h*****0 发帖数: 4889 | 3 ...3G的vector……你内存够吗?
啥程序需要这么大的vector?
【在 w*****3 的大作中提到】 : 郁闷死我了,help : 一个简单的循环, 每次运算的结果存在一个vector里面, : 程序在小数据的情况下没问题, : 然后我定义一个 : vector v(3000000000,false); : 跑着跑着就当掉了,说write violation : 我查了一下vector可以没有超过max_size : cout<: 我的问题是: : 1)如何知道这个vector是在哪分的空间,heap 还是 stack
|
t****t 发帖数: 6806 | 4 for bool it's 3g/8...
【在 h*****0 的大作中提到】 : ...3G的vector……你内存够吗? : 啥程序需要这么大的vector?
|
n**x 发帖数: 30 | 5
这里bool应该是int
【在 t****t 的大作中提到】 : for bool it's 3g/8...
|
k*******d 发帖数: 1340 | 6 Effective STL里面说过,最好别用vector
如果真的是3G的话,32bit的操作系统可能无法寻址到,虽然理论上能到4G |
y**i 发帖数: 1112 | 7 我怎么记得bool是byte,1个字节
【在 n**x 的大作中提到】 : : 这里bool应该是int
|
h*****0 发帖数: 4889 | 8 这是实现相关的吧?
总之,当有这种明显超出常理的需求的时候,
要么,改算法
要么,自己实现一个以达到内存和速度的双重要求。
【在 t****t 的大作中提到】 : for bool it's 3g/8...
|
|