mapのキーだけ or 値だけ
仕事メモ
std::mapでキーだけ、または値だけでBOOST_FOREACHを使いたい事が、時々あるのだが、
どうやるのだったか忘れて、その度に探してしまうので、自分用のメモ
以下の情報はboostjpから
std::mapでキーだけ、または値だけでBOOST_FOREACHを使いたい事が、時々あるのだが、
どうやるのだったか忘れて、その度に探してしまうので、自分用のメモ
以下の情報はboostjpから
#include <iostream>
#include <map>
#include <string>
#include <boost/range/adaptor/map.hpp>
#include <boost/foreach.hpp>
int main()
{
std::map<int, std::string> m;
m[3] = "a";
m[1] = "b";
m[4] = "c";
// キーのみを抽出
BOOST_FOREACH (int key, m | boost::adaptors::map_keys) {
std::cout << key << ' ';
}
std::cout << std::endl;
// 値のみを抽出
BOOST_FOREACH (const std::string& value, m | boost::adaptors::map_values) {
std::cout << value << ' ';
}
}
Comments