4.10
Copied!
#include <iostream>
#include <cstring>
#include <vector>
#include <map>
#include <set>
#include <algorithm>
using namespace std;
inline ostream& operator <<( ostream& out, const vector<char>& obj ) {
for( auto p: obj ) cout << p;
return out;
}
int main( void ) {
char s[] = "Muhammad al-Xorazmiy nomidagi Toshkent Axborot Texnologiyalari Universiteti"; // nazvanie knigi
vector<string> vs;
vs.push_back("Muminov");
vs.push_back("Bahodir");
// copy & find :
vector<char> v1( strlen( s ) );
copy( s, s v1.size(), v1.begin() );
int nb = 0;
for( auto is = find( v1.begin(), v1.end(), ' ' ); is != v1.end();
is = find( is, v1.end(), ' ' ) ) nb ;
cout << "boʻsh joylar soni: " << nb << " (" << nb 1
<< " soʻz)" << endl;
// min & max :
auto mm = minmax_element( v1.begin(), v1.end() );
cout << "belgilar uzunligi: '" << *mm.first << "' ... '"
<< *mm.second << "'" << endl;
// fill & reverse & rotate & shuffle :
vector<char> suv( vs[ 0 ].size() );
copy( vs[ 0 ].begin(), vs[ 0 ].end(), suv.begin() );
cout << suv << endl;
random_shuffle( suv.begin(), suv.end() );
cout << suv << endl;
reverse( suv.begin(), suv.end() );
cout << suv << endl;
rotate( suv.begin(), suv.begin() suv.size() / 2, suv.end() );
cout << suv << endl;
// set_intersection & set_difference
set< char > sus, pns;
for( char s: vector<char>( vs[ 0 ].begin(), vs[ 0 ].end() ) )
sus.insert( s );
for( char s: vector<char>( vs[ 1 ].begin(), vs[ 1 ].end() ) )
pns.insert( s );
vector<char> outi( 100 ), outd( 100 );
auto ret = set_intersection( sus.begin(), sus.end(), pns.begin(),
pns.end(), outi.begin() );
cout << "umumiy belgi " << ( ret - outi.begin() ) << " : "
<< outi << endl;
ret = set_difference( sus.begin(), sus.end(), pns.begin(),
pns.end(), outd.begin() );
cout << "unikal belgi " << ( ret - outd.begin() ) << " : "
<< outd << endl;
system("pause");
return 0;
}
Run on cpp.sh
Copied!