std::deque<T,Allocator>::at
From cppreference.com
| reference at( size_type pos ); |
(1) | |
| const_reference at( size_type pos ) const; |
(2) | |
指定された位置 pos の要素への参照を返します。境界チェックが行われます。
もし pos がコンテナの範囲外である場合、std::out_of_range 型の例外がスローされます。
目次 |
[編集] パラメータ
| pos | - | 返す要素の位置 |
[編集] 戻り値
要求された要素への参照
[編集] 例外
std::out_of_range pos >= size() の場合。
[編集] 計算量
定数。
[編集] 例
このコードを実行
#include <chrono> #include <cstddef> #include <iostream> #include <deque> #include <stdexcept> int main() { std::deque<int> 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 { // Try to set an element at random position >= size() auto moon_phase = [] { return std::chrono::system_clock::now().time_since_epoch().count() % 8; }; data.at(data.size() + moon_phase()) = 13; } catch(const std::out_of_range& ex) { std::cout << ex.what() << '\n'; } // Print final values std::cout << "data:"; for (int elem : data) std::cout << ' ' << elem; std::cout << '\n'; }
実行結果の例
Element at index 2 has value 4 data size = 6 deque::_M_range_check: __n (which is 8) >= this->size() (which is 6) data: 1 88 4 5 5 6
[編集] 関連項目
| 指定された要素にアクセスする (public メンバ関数) |