quick_start1.cpp

来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 121 行

CPP
121
字号
//  Copyright (c) 2001-2008 Hartmut Kaiser// //  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)//  The main purpose of this example is to show how a single container type can//  be formatted using different output grammars. #include <boost/config/warning_disable.hpp>#include <boost/spirit/include/karma.hpp>#include <boost/spirit/include/karma_stream.hpp>#include <iostream>#include <vector>#include <algorithm>#include <cstdlib> using namespace boost::spirit;using namespace boost::spirit::ascii;namespace karma = boost::spirit::karma;///////////////////////////////////////////////////////////////////////////////int main(){    ///////////////////////////////////////////////////////////////////////////    // vector    std::vector<int> v (8);    std::generate(v.begin(), v.end(), std::rand); // randomly fill the vector    std::cout << "Output 8 integers from a std::vector<int>..." << std::endl;    // output the container as a sequence without any separation    std::cout << "...without any separation" << std::endl;    std::cout <<         karma::format(            *int_,                                // format description            v                                     // data        ) << std::endl << std::endl;    // output the container as a space separated sequence    std::cout << "...as space delimited list" << std::endl;    std::cout <<         karma::format_delimited(            *int_,                                // format description            v,                                    // data            space                                 // delimiter        ) << std::endl << std::endl;    std::cout <<         karma::format_delimited(            '[' << *int_ << ']',                  // format description            v,                                    // data            space                                 // delimiter        ) << std::endl << std::endl;    // output the container as a comma separated list    std::cout << "...as comma separated list" << std::endl;    std::cout <<         karma::format(            int_ % ", ",                          // format description            v                                     // data        ) << std::endl << std::endl;    std::cout <<         karma::format(            '[' << (int_ % ", ") << ']',          // format description            v                                     // data        ) << std::endl << std::endl;    // output the container as a comma separated list of double's    std::cout << "...as comma separated list of doubles" << std::endl;    std::cout <<         karma::format(            double_ % ", ",                       // format description            v                                     // data        ) << std::endl << std::endl;    // output the container as a comma separated list of items enclosed in '()'    std::cout << "..as list of ints enclosed in '()'" << std::endl;    std::cout <<         karma::format(            ('(' << int_ << ')') % ", ",          // format description            v                                     // data        ) << std::endl << std::endl;    std::cout <<         karma::format(            '[' << (                  ('(' << int_ << ')') % ", "             )  << ']',                           // format description            v                                     // data        ) << std::endl << std::endl;            // output the container as a HTML list    std::cout << "...as HTML bullet list" << std::endl;    std::cout <<         karma::format_delimited(            "<ol>" <<                 // no delimiting within verbatim                *verbatim["  <li>" << int_ << "</li>"]            << "</ol>",                           // format description            v,                                    // data            '\n'                                  // delimiter        ) << std::endl;    // output the container as right aligned column    std::cout << "...right aligned in a column" << std::endl;    std::cout <<         karma::format_delimited(           *verbatim[                "|" << right_align[int_] << "|"            ],                                    // format description            v,                                    // data            '\n'                                  // delimiter        ) << std::endl;    std::cout << std::endl;    return 0;}

⌨️ 快捷键说明

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