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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::array::at -	std::array::at

Synopsis
	  reference at(	size_type pos );	     (1) (since	C++11)
							 (constexpr	 since
       C++17)
	  const_reference at( size_type	pos ) const; (2) (since	C++11)
							 (constexpr	 since
       C++14)

	  Returns  a  reference	to the element at specified location pos, with
       bounds checking.

	  If pos is not	within the range of the	 container,  an	 exception  of
       type
	  std::out_of_range is thrown.

Parameters
	  pos -	position of the	element	to return

Return value
	  Reference to the requested element.

Exceptions
	  std::out_of_range if pos >= size().

Complexity
	  Constant.

Example
       // Run this code

	#include <iostream>
	#include <array>
	#include <stdexcept>

	#ifdef __GNUG__
	[[gnu::noinline]]
	#endif
	unsigned int runtime_six() // Emulate runtime input
	{
	    return 6u;
	}

	int main()
	{
	    std::array<int, 6> data = {1, 2, 4,	5, 5, 6};

	    // Set element 1
	    data.at(1) = 88;

	    // Read element 2
	    std::cout  <<  "Element  at	 index	2 has value " << data.at(2) <<
       '\n';

	    std::cout << "data size = "	<< data.size() << '\n';

	    try
	    {
		// Set element 6, where	the index is determined	at runtime
		data.at(runtime_six()) = 666;
	    }
	    catch (std::out_of_range const& exc)
	    {
		std::cout << exc.what()	<< '\n';
	    }

	    // Print final values
	    std::cout << "data:";
	    for	(int elem : data)
		std::cout << ' ' << elem;
	    std::cout << '\n';
	}

Possible output:
	Element	at index 2 has value 4
	data size = 6
	array::at: __n (which is 6) >= _Nm (which is 6)
	data: 1	88 4 5 5 6

See also
	  operator[] access specified element
		     (public member function)

http://cppreference.com		  2024.06.10		     std::array::at(3)

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

home | help