繁体   English   中英

指向所有std :: vector元素的指针

[英]Pointer to all std::vector elements

从所有std :: vector元素获取指针的最佳方法(从代码的可读性和语义上)是什么,以便可以将其用作常规数组? 我曾经用过:

void Func( int* )

  ...

std::vector<int> x(1000);
Func(&(x[0]));

但我想知道有没有更漂亮的方法呢? x.begin()返回vector :: iterator。

x.data()在C ++ 11或&x.front()在C ++ 03

除了Dave的答案,您可以省略括号:

int * xP = &x[0];

这真的很短。

您也可以这样编写: int * xp = &x.front() ,但是对此没有最佳解决方案,编译器应将您编写的所有内容均优化为相同的结果。

可以保证向量在C ++ 11中以及从vc ++ 6.0到vc ++ 2012的平台中具有连续的存储。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM