How can I get a pointer to the first element in an std::vector?

前端 未结 5 714
春和景丽
春和景丽 2020-12-15 03:33

I want to write data from an std::vector to a socket, using the write function, which has this prototype:

ssize_t write         


        
相关标签:
5条回答
  • 2020-12-15 03:45

    By taking the address of the first element, with &vec[0], as the standard (since C++03, I think) demands continous storage of std::vector elements.

    0 讨论(0)
  • 2020-12-15 03:47
    my_vec.empty() ? 0 : &my_vec.front()
    

    If you would like an std::out_of_range to be thrown if vector is empty, you could use

    &my_vec.at(0)
    
    0 讨论(0)
  • 2020-12-15 04:00
    &mv_vec[0]
    

    or

    &my_vec.front()
    

    0 讨论(0)
  • 2020-12-15 04:00
    &*my_vec.begin()
    

    or

    &mv_vec[0]
    
    0 讨论(0)
  • 2020-12-15 04:03

    C++11 has vec.data() which has the benefit that the call is valid even if the vector is empty.

    0 讨论(0)
提交回复
热议问题