std::map<Key,T,Compare,Allocator>::begin,std::map<Key,T,Compare,Allocator>::cbegin (3) - Linux Manuals
std::map<Key,T,Compare,Allocator>::begin,std::map<Key,T,Compare,Allocator>::cbegin: std::map<Key,T,Compare,Allocator>::begin,std::map<Key,T,Compare,Allocator>::cbegin
Command to display std::map<Key,T,Compare,Allocator>::begin,std::map<Key,T,Compare,Allocator>::cbegin
manual in Linux: $ man 3 std::map<Key,T,Compare,Allocator>::begin,std::map<Key,T,Compare,Allocator>::cbegin
NAME
std::map<Key,T,Compare,Allocator>::begin,std::map<Key,T,Compare,Allocator>::cbegin - std::map<Key,T,Compare,Allocator>::begin,std::map<Key,T,Compare,Allocator>::cbegin
Synopsis
iterator begin(); (until C++11)
iterator begin() noexcept; (since C++11)
const_iterator begin() const; (until C++11)
const_iterator begin() const noexcept; (since C++11)
const_iterator cbegin() const noexcept; (since C++11)
Returns an iterator to the first element of the container.
If the container is empty, the returned iterator will be equal to end().
range-begin-end.svg
Parameters
(none)
Return value
Iterator to the first element
Complexity
Constant
Example
// Run this code
#include <iostream>
#include <map>
int main() {
std::map<int, float> num_map;
num_map[4] = 4.13;
num_map[9] = 9.24;
num_map[1] = 1.09;
// calls a_map.begin() and a_map.end()
for (auto it = num_map.begin(); it != num_map.end(); ++it) {
std::cout << it->first << ", " << it->second << '\n';
}
}
Output:
1, 1.09
4, 4.13
9, 9.24
Example using a custom comparison function
// Run this code
#include <cmath>
#include <iostream>
#include <map>
struct Point { double x, y; };
typedef Point * PointPtr;
//Compare the x-coordinates of two Point pointers
struct PointCmp {
bool operator()(const PointPtr &lhs, const PointPtr &rhs) const {
return lhs->x < rhs->x;
}
};
int main() {
//Note that although the x-coordinates are out of order, the
// map will be iterated through by increasing x-coordinates
Point points[3] = { {2, 0}, {1, 0}, {3, 0} };
//mag is a map sending the address of node to its magnitude in the x-y plane
//Although the keys are pointers-to-Point, we want to order the map by the
// x-coordinates of the points and NOT by the addresses of the Points. This
// is done by using the PointCmp class's comparison method.
std::map<Point *, double, PointCmp> mag({
{ points, 2 },
{ points + 1, 1 },
{ points + 2, 3 }
});
//Change each y-coordinate from 0 to the magnitude
for(auto iter = mag.begin(); iter != mag.end(); ++iter){
auto cur = iter->first; // pointer to Node
cur->y = mag[cur]; // could also have used cur->y = iter->second;
}
//Update and print the magnitude of each node
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';
}
//Repeat the above with the range-based for loop
for(auto i : mag) {
auto cur = i.first;