获取指向所有 std::vector 元素的指针以便它可以像通常的数组一样使用的最佳(从代码可读性和语义)方法是什么?我曾经使用:
void Func( int* )
...
std::vector<int> x(1000);
Func(&(x[0]));
但我想知道有没有更漂亮的方法来做到这一点?x.begin() 返回向量::迭代器。
x.data()
在 C++11 或&x.front()
C++03 中
除了 Dave 的答案,您可以省略括号:
int * xP = &x[0];
这真的很短。
在 C++11 以及从 vc++6.0 到 vc++ 2012 的平台中,向量保证具有连续存储。
你也可以这样写:int * xp = &x.front()
,但是没有最优解,你写的所有东西都应该被编译器优化成相同的结果。