如何获得指向std :: vector中第一个元素的指针?

时间:2011-09-11 11:02:48

标签: c++ vector

我想使用std::vector<char>函数将数据从write写入套接字,该函数具有以下原型:

ssize_t write(int, const void *, size_t);

此函数的第二个参数必须是指向std::vector<char>中第一个元素的指针。如何获得指向此元素的指针?

我尝试了std::vector::front但这会返回一个引用,而我需要一个指针。

5 个答案:

答案 0 :(得分:51)

C ++ 11具有vec.data(),即使向量为空,也可以使调用有效。

答案 1 :(得分:32)

&mv_vec[0]

&my_vec.front()

答案 2 :(得分:5)

my_vec.empty() ? 0 : &my_vec.front()

如果你想要一个std::out_of_range,如果vector为空,你可以使用

&my_vec.at(0)

答案 3 :(得分:2)

&*my_vec.begin()

&mv_vec[0]

答案 4 :(得分:1)

通过将第一个元素的地址(&vec[0])作为标准(因为C ++ 03,我认为)要求连续存储std::vector个元素。