boost::any 和其他容器的搭配
boost::any 和其他容器的搭配形成一种异质型容器:
(1)std::vector<boost::any>
std::vector<boost::any> coll{std::string("hello"), 1, 1.5, 'a'}; std::cout << boost::any_cast<std::string>(coll[0]) << std::endl; // boost::any_cast<int> // boost::any_cast<double> // boost::any_cast<char>
(2)std::map<std::string, boost::any>
std::map<std::string, boost::any> additional; additional.insert(std::pair<std::string, boost::any>("max iter", 100)); additional.insert(std::pair<std::string, boost::any>("num clusters", 7)); additional.insert(std::pair<std::string, boost::any>("name", std::string("InsideZhang"))); std::cout << boost::any_cast<int>(additional["max iter"]) << std::endl; std::cout << boost::any_cast<std::string>(additional["name"]) << std::endl;