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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2009, 17:53   #1
Наташенька
Пользователь
 
Аватар для Наташенька
 
Регистрация: 20.12.2008
Сообщений: 26
По умолчанию использование функций не членов класса

подскажите пожалуйста, как сделать функцию svap членом класса
Код:
#include <vector>
//...
void main(){
vector<int> v(0);
//...
vector<int>::iterator t;
for( t=v.begin(); t!=v.end();t++)
{if(*(t++)<*t)
{v.svap(*(t++),*t);}}
}
Наташенька вне форума Ответить с цитированием
Старый 05.10.2009, 18:15   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

1. не svap, а swap.
2. какого класса?
3. if(*(t++)<*t). когда итератор будет указывать на end, что произойдет с вашим сравнением?) соответственно со свапом тоже.
4. разве так не красивее? (хоть это и не правильно)

Код:
#include <iostream>
#include <vector>

using namespace std;

void main() {
	vector<int> v(0);
	vector<int>::iterator t;

	for(t = v.begin(); t != v.end(); t++)
		if(*(t++)<*t)
			v.svap(*(t++),*t);
}
и кстати, если вы хотите просто отсорировать вектор (как я понял по коду, но у вас это не сортировка, я бы сказал недопузырек ), то не проще ли сделать так:

Код:
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
	vector<int> m_List;
	vector<int>::iterator It;

	m_List.push_back(7);
	m_List.push_back(2);
	m_List.push_back(1);
	m_List.push_back(5);

	sort(m_List.begin(), m_List.end());

	for (It = m_List.begin(); It != m_List.end(); It++) {
		cout << *It << endl;
	}

	return 0;
}
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance

Последний раз редактировалось pproger; 05.10.2009 в 18:22.
pproger вне форума Ответить с цитированием
Старый 05.10.2009, 18:37   #3
Наташенька
Пользователь
 
Аватар для Наташенька
 
Регистрация: 20.12.2008
Сообщений: 26
По умолчанию

вроде как надо отсортировать вектор по возрастанию элементов
Наташенька вне форума Ответить с цитированием
Старый 05.10.2009, 18:49   #4
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Наташенька
ну у вас это ниразу не сортировка по крайней мере, 2 цикла должно быть для пузырька (один естестно вложенный). как то вы компактно на мой пост ответили, аж обидно
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 05.10.2009, 19:03   #5
Наташенька
Пользователь
 
Аватар для Наташенька
 
Регистрация: 20.12.2008
Сообщений: 26
По умолчанию

Ой, извините, всё разобралась, просто не понятно сначала было - такой код большой вы мне написали Спасибо большое!!!
Наташенька вне форума Ответить с цитированием
Старый 05.10.2009, 19:11   #6
Наташенька
Пользователь
 
Аватар для Наташенька
 
Регистрация: 20.12.2008
Сообщений: 26
По умолчанию

А можно ещё вопрос! Как отсортировать по убыванию?
Наташенька вне форума Ответить с цитированием
Старый 05.10.2009, 19:25   #7
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

самый простой вариант - написать вместо этого
Код:
sort(m_List.begin(), m_List.end());
это:
Код:
sort(m_List.rbegin(), m_List.rend());
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 05.10.2009, 19:32   #8
Наташенька
Пользователь
 
Аватар для Наташенька
 
Регистрация: 20.12.2008
Сообщений: 26
По умолчанию

Спасибо! Вы мне очень помогли!
Наташенька вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
использование функций в качестве параметров других функций mono Помощь студентам 0 20.04.2009 18:25
Использование функций prikolist Общие вопросы C/C++ 15 06.04.2009 18:42
использование процедур и функций! ...Оленька... Паскаль, Turbo Pascal, PascalABC.NET 0 24.12.2008 15:33
Использование функций Excel СеВа Microsoft Office Excel 0 14.03.2008 13:37