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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::basic_string::data - std::basic_string::data

Synopsis
	  const	CharT* data() const; (1) (noexcept since C++11)
					 (constexpr since C++20)
	  CharT* data()	noexcept;    (2) (since	C++17)
					 (constexpr since C++20)

	  Returns a pointer to the underlying array serving as character stor-
       age. The	pointer
	  is such that the range

	  [data(), data() + size()) (until C++11)
	  [data(), data() + size()] (since C++11)

	  is valid and the values in it	correspond to the values stored	in the
       string.

	  The returned array is	not required to	be null-terminated.
										 (un-
       til C++11)
	  If  empty()  returns	true,  the  pointer is a non-null pointer that
       should
	  not be dereferenced.
	  The returned array is	null-terminated, that is, data() and c_str()
	  perform the same function.
										 (since
       C++11)
	  If empty() returns true, the pointer points to a single null
	  character.

	  The pointer obtained from data() may be invalidated by:

	    * Passing a	non-const reference to the string to any standard  li-
       brary function, or
	    *  Calling non-const member	functions on the string, excluding op-
       erator[](), at(),
	      front(), back(), begin(),	end(), rbegin(), rend().
	  1) Modifying the character array accessed through the	const overload
       of data has
	  undefined behavior.
	  2) Modifying the past-the-end	null terminator	 stored	 at  data()  +
       size() to any value
	  other	than CharT() has undefined behavior.

Parameters
	  (none)

Return value
	  A pointer to the underlying character	storage.

	  data()[i]   ==   operator[](i)   for	 every	 i   in	 [0,  size()).
       (until C++11)
	  data()  +  i	==  std::addressof(operator[](i))  for	every	i   in
       (since C++11)
	  [0, size()].

Complexity
	  Constant.

Example
       // Run this code

	#include <algorithm>
	#include <cassert>
	#include <cstring>
	#include <string>

	int main()
	{
	    std::string	const s("Emplary");
	    assert(s.size() == std::strlen(s.data()));
	    assert(std::equal(s.begin(), s.end(), s.data()));
	    assert(std::equal(s.data(),	s.data() + s.size(), s.begin()));
	    assert('\0'	== *(s.data() +	s.size()));
	}

See also
	  front	accesses the first character
	  (DR*)	(public	member function)
	  back	accesses the last character
	  (DR*)	(public	member function)
	  c_str	returns	a non-modifiable standard C character array version of
       the string
		(public	member function)
	  data	returns	a pointer to the first character of a view
		(public	       member	     function	     of	      std::ba-
       sic_string_view<CharT,Traits>)

http://cppreference.com		  2024.06.10	    std::basic_string::data(3)

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

home | help