std::unordered_map<Key,T,Hash,KeyEqual,Allocator>:: begin, std::unordered_map<Key,T,Hash,KeyEqual,Allocator>:: cbegin
From cppreference.net
<
cpp
|
container
|
unordered map
|
iterator begin
(
)
noexcept
;
|
(1) |
(C++11以降)
(constexpr C++26以降) |
|
const_iterator begin
(
)
const
noexcept
;
|
(2) |
(C++11以降)
(constexpr C++26以降) |
|
const_iterator cbegin
(
)
const
noexcept
;
|
(3) |
(C++11以降)
(constexpr C++26以降) |
* this の最初の要素へのイテレータを返します。
* this が空の場合、返されるイテレータは end() と等しくなります。
目次 |
戻り値
最初の要素へのイテレータ。
計算量
定数。
例
このコードを実行
#include <cmath> #include <iostream> #include <unordered_map> struct Node { double x, y; }; int main() { Node nodes[3] = {{1, 0}, {2, 0}, {3, 0}}; // magはNodeのアドレスを平面上の大きさにマッピングするマップ std::unordered_map<Node*, double> mag = { { nodes + 0, 1 }, { nodes + 1, 2 }, { nodes + 2, 3 } }; // 各y座標を0から大きさに変更 for (auto iter = mag.begin(); iter != mag.end(); ++iter) { auto cur = iter->first; // Nodeへのポインタ cur->y = mag[cur]; // cur->y = iter->second; も使用可能 } // 各ノードの大きさを更新して出力 for (auto iter = mag.begin(); iter != mag.end(); ++iter) { auto cur = iter->first; mag[cur] = std::hypot(cur->x, cur->y); std::cout << "The magnitude of (" << cur->x << ", " << cur->y << ") is "; std::cout << iter->second << '\n'; } // 範囲ベースforループで上記を繰り返し for (auto i : mag) { auto cur = i.first; cur->y = i.second; mag[cur] = std::hypot(cur->x, cur->y); std::cout << "The magnitude of (" << cur->x << ", " << cur->y << ") is "; std::cout << mag[cur] << '\n'; // 上記のstd::cout << iter->second << '\n';とは対照的に、 // std::cout << i.second << '\n'; は更新された大きさを出力しない } }
出力例:
The magnitude of (3, 3) is 4.24264 The magnitude of (1, 1) is 1.41421 The magnitude of (2, 2) is 2.82843 The magnitude of (3, 4.24264) is 5.19615 The magnitude of (1, 1.41421) is 1.73205 The magnitude of (2, 2.82843) is 3.4641
関連項目
|
終端へのイテレータを返す
(公開メンバ関数) |
|
|
(C++11)
(C++14)
|
コンテナまたは配列の先頭へのイテレータを返す
(関数テンプレート) |