From 274bf4a39a2a89b95ebbc89cea4d775f2c8eaead Mon Sep 17 00:00:00 2001 From: Mohammad Sajid Anwar Date: Mon, 22 Jul 2024 13:50:28 +0100 Subject: - Added solutions by Ulrich Rieke. --- challenge-279/ulrich-rieke/cpp/ch-1.cpp | 38 +++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100755 challenge-279/ulrich-rieke/cpp/ch-1.cpp (limited to 'challenge-279/ulrich-rieke/cpp/ch-1.cpp') diff --git a/challenge-279/ulrich-rieke/cpp/ch-1.cpp b/challenge-279/ulrich-rieke/cpp/ch-1.cpp new file mode 100755 index 0000000000..8d6d6444c8 --- /dev/null +++ b/challenge-279/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,38 @@ +#include +#include +#include +#include +#include +#include + +std::vector tokenize( const std::string & text , char delimiter ) { + std::istringstream allTokens { text } ; + std::vector tokens ; + std::string tok ; + while ( std::getline( allTokens , tok , delimiter ) ) { + tokens.push_back( tok ) ; + } + return tokens ; +} + +int main( ) { + std::cout << "Enter some letters, separated by blanks!\n" ; + std::string line ; + std::getline( std::cin , line ) ; + std::vector letterstrings { tokenize( line , ' ' ) } ; + std::cout << "Enter some weights, separated by blanks!\n" ; + std::getline( std::cin , line ) ; + std::vector weightstrings { tokenize( line , ' ' ) } ; + std::vector> allPairs ; + for ( int i = 0 ; i < letterstrings.size( ) ; i++ ) { + allPairs.push_back( std::make_pair( letterstrings[i].front( ) , std::stoi( + weightstrings[i].substr( 0 , 1 ) ) ) ) ; + } + std::sort( allPairs.begin( ) , allPairs.end( ) , []( const auto & p1 , const auto & p2) { + return p1.second < p2.second ; } ) ; + for ( auto p : allPairs ) + std::cout << p.first ; + std::cout << '\n' ; + return 0 ; +} + -- cgit