首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

std:deque作为c语言数组运用

2013-01-09 
std::deque作为c语言数组使用std::vectorint vi// ...void do_something(int * p, int len)do_somethi

std::deque作为c语言数组使用
std::vector<int> vi;
// ...

void do_something(int * p, int len);
do_something(&vi[0], vi.size);

上面这样使用没有问题。
我想请问,deque可以这样使用吗?

deque与vector组织内存的方式不一样。vector会使用一块连续的内存,
所以上面这样使用没有问题。而deque是按“页”(page)或“块”(chunk)分配存储器。
每页包含固定数目的元素。

比如一块10M字节的vector,使用的是一整块10M字节的内存。
而deque可以使用一串更小的内存块,比如10块1M的内存。
所以我觉得deque所使用的内存不连续,是不是不能像上面的vector一样,
将首元素的地址和大小传递给传统C API?

谢谢大家。 -_-

[解决办法]
不行的,内存不连续,只有vector可以。
[解决办法]
买本effective stl吧,你现在的问题,即将的问题,就都有答案了。

热点排行