Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::vector::data(3)	      C++ Standard Libary	  std::vector::data(3)

NAME
       std::vector::data - std::vector::data

Synopsis
	  T* data();				     (until C++11)
	  T* data() noexcept;			     (since C++11)
						     (until C++20)
	  constexpr T* data() noexcept;		     (since C++20)
	  const	T* data() const;		     (until C++11)
	  const	T* data() const	noexcept;	     (since C++11)
						     (until C++20)
	  constexpr const T* data() const noexcept;  (since C++20)

	  Returns  pointer to the underlying array serving as element storage.
       The pointer is
	  such that range [data(); data() + size()) is always a	 valid	range,
       even if the
	  container is empty (data() is	not dereferenceable in that case).

Parameters
	  (none)

Return value
	  Pointer to the underlying element storage. For non-empty containers,
       the returned
	  pointer compares equal to the	address	of the first element.

Complexity
	  Constant.

Notes
	  If size() is 0, data() may or	may not	return a null pointer.

Example
       // Run this code

	#include <cstddef>
	#include <iostream>
	#include <span>
	#include <vector>

	void pointer_func(const	int* p,	std::size_t size)
	{
	    std::cout << "data = ";
	    for	(std::size_t i = 0; i <	size; ++i)
		std::cout << p[i] << ' ';
	    std::cout << '\n';
	}

	void span_func(std::span<const int> data) // since C++20
	{
	    std::cout << "data = ";
	    for	(const int e : data)
		std::cout << e << ' ';
	    std::cout << '\n';
	}

	int main()
	{
	    std::vector<int> container { 1, 2, 3, 4 };

	    // Prefer container.data() over &container[0]
	    pointer_func(container.data(), container.size());

	    //	 std::span   (C++20)  is  a  safer  alternative	 to  separated
       pointer/size.
	    span_func({container.data(), container.size()});
	}

Output:
	data = 1 2 3 4
	data = 1 2 3 4

	 Defect	reports

	  The following	behavior-changing defect reports were applied retroac-
       tively to
	  previously published C++ standards.

	    DR	  Applied to	      Behavior as published	       Correct
       behavior
	  LWG 464 C++98	     vector did	not have this member function added

See also
	  front	  access the first element
		  (public member function)
	  back	  access the last element
		  (public member function)
	  size	  returns the number of	elements
		  (public member function)
	  span	  a non-owning view over a contiguous sequence of objects
	  (C++20) (class template)
	  data	  obtains the pointer to the underlying	array
	  (C++17) (function template)

http://cppreference.com		  2022.07.31		  std::vector::data(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::vector::data&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help