Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2010, 13:20   #1
opensuse2008
Пользователь
 
Регистрация: 07.06.2009
Сообщений: 12
По умолчанию list сорировка по количеству слов в строке. Что не так?

Всех приветсвую: хочу сделать сортировку строк по количеству слов в строке. Вообще в голову ничего не приходит. Может дадите код алгоритма size, попробую по нему сделать. А вот что я пытался сделать:

PHP код:
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <list>
#include <functional>
#include <numeric>
#include <string>
using namespace std;

template <class ACint lks(AC one)
{
    
int hj=0;
    for(
int i=0i!=one.size(); i++)
    {
        if(
one(i)==" ")
        {
            
hj++;
        }
    }
    return 
hj;
}

int ksl(string a)
{
    
int sh=0;
    for(
int i=1;i!=a.size();i++)
    {
        
//cout<<a[i];
    
}
    return 
sh;
}

bool pred(string astring b)
{
    return 
lks(a)>lks(b);
}

template<class InpItervoid echo(InpIter firstInpIter last)
{
    
copy(firstlastostream_iterator<string>(cout"\n"));
}

void main ()
{
    
string x[]={"f f f f""fff fff""fffffff""ff ff f""f f f f" };
    list <
stringl(xx+5);
    echo(
l.begin(), l.end());

cout<<endl;
    
l.sort(pred);



    echo(
l.begin(), l.end());


    

думал есть в С++ как в php explode, а нет.
opensuse2008 вне форума Ответить с цитированием
Старый 06.01.2010, 14:11   #2
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Код:
#include <iostream> 
#include <algorithm> 
#include <sstream>
#include <string> 
#include <vector>
#include <list> 
using namespace std; 


bool pred(const string &a, const string &b) 
{ 
	std::stringstream ss1(a), ss2(b);
	vector<string> v1, v2;

	copy(istream_iterator<string>(ss1), istream_iterator<string>(), back_inserter(v1));
	copy(istream_iterator<string>(ss2), istream_iterator<string>(), back_inserter(v2));
	return v1.size() > v2.size(); 
} 

template<class InpIter> void echo(InpIter first, InpIter last) 
{ 
	copy(first, last, ostream_iterator<string>(cout, "\n")); 
} 

int main () 
{ 
	string x[]={"f f f f", "fff fff", "fffffff", "ff ff f", "f f f f" }; 
	list <string> l(x, x+5); 
	echo(l.begin(), l.end()); 

	cout<<endl; 
	l.sort(pred); 

	echo(l.begin(), l.end()); 

	return 0;
}
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 06.01.2010, 15:34   #3
opensuse2008
Пользователь
 
Регистрация: 07.06.2009
Сообщений: 12
По умолчанию

Спасибо. Буду разбираться, а можно все-таки сказать, как просмотреть код size(). А то все библиотеки подключенные посмотрел, не нашел.
opensuse2008 вне форума Ответить с цитированием
Старый 06.01.2010, 15:42   #4
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Код:
как просмотреть код size()
Зачем? оно просто вернет количество элементов..
http://www.cplusplus.com/reference/stl/vector/size/
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 06.01.2010, 21:56   #5
opensuse2008
Пользователь
 
Регистрация: 07.06.2009
Сообщений: 12
По умолчанию

Хотя да, думал что идет подсчет в цикле.
opensuse2008 вне форума Ответить с цитированием
Старый 06.01.2010, 21:56   #6
opensuse2008
Пользователь
 
Регистрация: 07.06.2009
Сообщений: 12
По умолчанию

Спасибо, тему можно удалять.
opensuse2008 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
удаление повторяющих слов в строке Андрей.12 Помощь студентам 1 17.12.2009 17:54
Упорядочивание слов в строке Nitrino Общие вопросы C/C++ 19 18.05.2009 22:09
Инверсия слов в строке. С++ Dest Общие вопросы C/C++ 3 17.05.2009 17:58
Поиск слов в строке Neymexa Общие вопросы C/C++ 3 16.12.2008 18:33
Разделение 2-х слов в строке 856100 Общие вопросы Delphi 9 06.10.2008 20:41