⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mighty_bimap.cpp

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 CPP
字号:
// Boost.Bimap//// Copyright (c) 2006-2007 Matias Capeletto//// Distributed under the Boost Software License, Version 1.0.// (See accompanying file LICENSE_1_0.txt or copy at// http://www.boost.org/LICENSE_1_0.txt)//  VC++ 8.0 warns on usage of certain Standard Library and API functions that//  can be cause buffer overruns or other possible security issues if misused.//  See http://msdn.microsoft.com/msdnmag/issues/05/05/SafeCandC/default.aspx//  But the wording of the warning is misleading and unsettling, there are no//  portable alternative functions, and VC++ 8.0's own libraries use the//  functions in question. So turn off the warnings.#define _CRT_SECURE_NO_DEPRECATE#define _SCL_SECURE_NO_DEPRECATE// Boost.Bimap Example//-----------------------------------------------------------------------------// This is the translator example from the tutorial.// In this example the set type of relation is changed to allow the iteration// of the container.#include <boost/config.hpp>//[ code_mighty_bimap#include <iostream>#include <string>#include <boost/bimap/bimap.hpp>#include <boost/bimap/list_of.hpp>#include <boost/bimap/unordered_set_of.hpp>struct english {};struct spanish {};int main(){    using namespace boost::bimaps;    typedef bimap    <        unordered_set_of< tagged< std::string, spanish > >,        unordered_set_of< tagged< std::string, english > >,        list_of_relation    > translator;    translator trans;    // We have to use `push_back` because the collection of relations is    // a `list_of_relation`    trans.push_back( translator::value_type("hola"  ,"hello"   ) );    trans.push_back( translator::value_type("adios" ,"goodbye" ) );    trans.push_back( translator::value_type("rosa"  ,"rose"    ) );    trans.push_back( translator::value_type("mesa"  ,"table"   ) );    std::cout << "enter a word" << std::endl;    std::string word;    std::getline(std::cin,word);    // Search the queried word on the from index (Spanish)    translator::map_by<spanish>::const_iterator is        = trans.by<spanish>().find(word);    if( is != trans.by<spanish>().end() )    {        std::cout << word << " is said "                  << is->get<english>()                  << " in English" << std::endl;    }    else    {        // Word not found in Spanish, try our luck in English        translator::map_by<english>::const_iterator ie            = trans.by<english>().find(word);        if( ie != trans.by<english>().end() )        {            std::cout << word << " is said "                      << ie->get<spanish>()                      << " in Spanish" << std::endl;        }        else        {            // Word not found, show the possible translations            std::cout << "No such word in the dictionary"      << std::endl;            std::cout << "These are the possible translations" << std::endl;            for( translator::const_iterator                    i = trans.begin(),                    i_end = trans.end();                    i != i_end ; ++i )            {                std::cout << i->get<spanish>()                          << " <---> "                          << i->get<english>()                          << std::endl;            }        }    }    return 0;}//]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -