IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Запись и чтение контейнеров(а именно vector), через операторы вставки и извлечения.
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


Можете привести примеры чтения и записи вектора через операторы << и >>?
я просто пока плохо представляю как это реализовать.. norespect.gif

допустим вот для этого пример :

class Team
{
public :
friend ostream& operator << (ostream& outs, const vector<Team>&);
friend istream& operator >> (istream& sin, vector<Team>&);
friend void file_save(const vector<Team>&);
private:

string TeamName;
int win;
int lose;
int draw;
int score;

};




ostream&  operator << (ostream& outs, const vector<Team>& v) 
{
outs << "Team " << " Wins " << "Loses " << "Draws " << "Scores\n";
for (unsigned int i=0;i<v.size();i++)
{

outs << v[i].TeamName;
set_spaces_t(v,i);
outs << v[i].win << " " << v[i].lose << " " << v[i].draw << " " << v[i].score << "\n";

}

return outs;
}


Как надо правильно переопределить оператор >> для чтения из файла?.
вот функция записи допустим
:
void file_save(const vector<Team>& v){
char filename[15];
cout <<"Enter a file name(without extension) : ";
cin >> filename;
//filename=filename+".sys";
ofstream outfile(filename);
outfile << v;
}



Извиняюсь,Если как-то плохо объяснил что нужно,или наплел тут чуши - голова уже не варит к концу дня.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


Спасибо за помощь!Но всеравно не много не понимаю пока..ну разберусь.У меня теперь новый вопросsmile.gif
Допустим,имеется какой-то класс с полями int и string.И есть вектор этих объектов v.
Я хочу отсортировать вектор с помощью алгоритма sort() по заданным параметрам,т.е сортировка по i (в порядке возрастания,или убывания), сортировка по str (так же,в порядке возрастания и убывания).Понятно,что для этих типов определен оператор < и оператор >. Но,если я просто вызову функция sort(v.begin(),v.end()); ,то будет ошибка.Так вот, надо ли мне,определять предикат сортировки для каждого из параметров?

Допустим вот так :

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;

class c{
public :
int c;
string str;
};



bool sortbystr(const c& first,const c& second)
{
return (first.str==second.str);
}

int main() {
vector<c> v;
sort(v.begin(),v.end(),sortbystr);
return 0;
}


Будет ли это правильно?

2ой вопрос : допустим,имеется клас Team

class Team
{
public :

string TeamName;

};


и класс Player :

class Player
{
public :
long int salary;
string Lname;
string team;

};



Необходимо,что бы при вводе поля team, происходила проверка : имеется ли данная команда в векторе класса Team.Т.е.,вводим ли мы реально существующую команду,к которой принадлежит игрок или нет.
С помощью какого алгоритма stl можно сделать данную проверку?find,search или же проще и лучше написать самому(это то я понимаю как написать,но хочется освоить stl алгоритмы)?Если можно,приведите,пожалуйста,пример.

Сообщение отредактировано: Andrewshkovskii -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Andrewshkovskii   Запись и чтение контейнеров(а именно vector)   31.05.2008 3:15
volvo   А зачем, собственно, тебе перегружать операцию вво…   31.05.2008 3:35
Andrewshkovskii   ну как видно по коду,он так же будет создан не пра…   31.05.2008 3:41
volvo   Ну, так напиши себе метод (скажем, такой: class T…   31.05.2008 3:46
Andrewshkovskii   хм..сейчас попробую.Кстате,вопрос такой : почему д…   31.05.2008 3:48
volvo   Потому, что дружественная функция - это часть инте…   31.05.2008 4:04
Andrewshkovskii   хм..спасибо=) Написал тут кое-что..только почему-т…   31.05.2008 4:12
volvo   Сам не догадываешься? Чему равен размер вектора пр…   31.05.2008 4:16
Andrewshkovskii   Спасибо и в этот раз...надо всетаки нормально в Ла…   31.05.2008 4:17
volvo   Я ж тебя просил привести пример файла, из которого…   31.05.2008 4:33
Andrewshkovskii   содержимое файла : team11236team21236 Как заполн…   31.05.2008 4:36
volvo   Нет, так не пойдет... Надо разделять данные... Хот…   31.05.2008 4:58
Andrewshkovskii   Спасибо за помощь!Но всеравно не много не пони…   31.05.2008 21:33
volvo   Да, если ты хочешь иметь возможность сортировать в…   31.05.2008 23:11
Andrewshkovskii   Ну я отсутствовал в инете пару дней..когда ты сказ…   2.06.2008 23:02
volvo   Насколько я вижу - вот так будет лучше: bool exsi…   2.06.2008 23:19


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 26.04.2024 6:34
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name