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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::array::data	- std::array::data

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

	  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 <array>

	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::array<int, 4> 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

See also
	  front	  access the first element
	  (C++11) (public member function)
	  back	  access the last element
	  (C++11) (public member function)
	  size	  returns the number of	elements
	  (C++11) (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::array::data(3)

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

home | help