Форум программистов, компьютерный форум CyberForum.ru

Библиотека STL, сортировка - C++

Восстановить пароль Регистрация
 
asdasdasdasdgg
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 10
24.03.2013, 18:38     Библиотека STL, сортировка #1
Сортировка слов по количеству вхождений в слово его первой буквы...

Можно какой-нибудь пример??
Можно не всю программу, а только реализацию данной функции

Добавлено через 13 минут
Помогите, пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2013, 18:38     Библиотека STL, сортировка
Посмотрите здесь:

C++ Библиотека STL, класс вектор
C++ Стандартная библиотека шаблонов (STL)
C++ Стандартная библиотека C++ и STL
библиотека STL C++
Библиотека STL, + задача с её использованием C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
24.03.2013, 18:41     Библиотека STL, сортировка #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <iterator>
bool pred(const std::string & str1,const std::string & str2){
    return std::count(str1.begin(),str1.end(),str1.at(0))>std::count(str2.begin(),str2.end(),str2.at(0));
}
 
 
std::ostream & operator<<(std::ostream & lhv,std::vector<std::string> & rhv){
    std::copy(rhv.begin(),rhv.end(),std::ostream_iterator<std::string>(std::cout,"\n"));
    return lhv;
}
 
 
int main(){
    std::vector<std::string> vec;
    vec.push_back("kjdkf");
    vec.push_back("ggdsg");
    vec.push_back("aaaaa");
    std::cout<<vec;
    std::sort(vec.begin(),vec.end(),pred);
    std::cout<<"Sort:\n"<<vec;
}
Что-то типа этого?
asdasdasdasdgg
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 10
24.03.2013, 18:58  [ТС]     Библиотека STL, сортировка #3
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <iterator>
bool pred(const std::string & str1,const std::string & str2){
    return std::count(str1.begin(),str1.end(),str1.at(0))>std::count(str2.begin(),str2.end(),str2.at(0));
}
 
 
std::ostream & operator<<(std::ostream & lhv,std::vector<std::string> & rhv){
    std::copy(rhv.begin(),rhv.end(),std::ostream_iterator<std::string>(std::cout,"\n"));
    return lhv;
}
 
 
int main(){
    std::vector<std::string> vec;
    vec.push_back("kjdkf");
    vec.push_back("ggdsg");
    vec.push_back("aaaaa");
    std::cout<<vec;
    std::sort(vec.begin(),vec.end(),pred);
    std::cout<<"Sort:\n"<<vec;
}
Что-то типа этого?




Да, так) Спасибо огромное. Помогло)
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
24.03.2013, 19:58     Библиотека STL, сортировка #4
asdasdasdasdgg, а вот вам вариант с вводом слов с клавиатуры во время выполнения

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// obr.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;
 
struct Print{
    template<typename T>
    void operator() (T &elem) const
    {
        cout << elem << "\n";
    }
};
 
bool pred(const string &op1,const string &op2){
    return count(op1.begin(), op1.end(), op1.at(0))
            > count(op2.begin(), stop2r2.end(), op2.at(0));
}
 
int _tmain(int argc, _TCHAR* argv[])
{   
    cout << "Enter words or ctrl + z to complete:\n";
    vector<string> str((istream_iterator<string>(cin)), (istream_iterator<string>()));
 
    /*выводим введенные слова*/
    cout << "\nConclusion entered words:\n";
    for_each(str.begin(), str.end(), Print());
 
    /*сортируем*/
    sort(str.begin(), str.end(), pred);
 
    cout << "\nSorted words:\n";
    /*выводим список отсортированных слов*/
    for_each(str.begin(), str.end(), Print());
 
    cout << "\n\n";
    return 0;
}
Yandex
Объявления
24.03.2013, 19:58     Библиотека STL, сортировка
Ответ Создать тему
Опции темы

Текущее время: 21:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru