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

> Внимание!

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

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

 
 Ответить  Открыть новую тему 
> С++ и работа с Stl, контейнер и все дела...
сообщение
Сообщение #1


Новичок
*

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

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


помогите исходниками программы, которая создает контейнер, выделяет память для него, в программе дожны быть сравнения со стандартными видами памяти, хорошо бы использование любого алгоритма (например поиска, сортировки). иными словами в программе нужно создать контейнер и с ним "поиграть", чтобы посмотреть всю мощь STL. может кто-нибудь такое уже делал ??

Сообщение отредактировано: w@rlock -


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


Гость






Какой контейнер тебя интересует? В STL их как минимум 7 штук...

Что значит, сравнение со стандартными видами? То есть, тебе надо сделать нечто (к примеру, список, или дек) вручную, и потом сравнить это с STL-реализацией?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


например, вектор или опять таки очередь (допустим из целых чисел) smile.gif как можно сделать какой-нибудь алгоритм с использованием STL ? wink.gif
Например:

// Пример работы с STL библиотекой на основе вектора
#include <iostream>
#include <vector>

using namespace std;

int main () {

vector <int> a;
cout << "\n Модуль тест для работы с библиотекой STL";

cout << "Created vector a, size of vector: " << a.size() << "and capacity of vector: " << a.capacity();
cout << "Please resize vector:";
int N;
cin >> N;
a.resize(N);
cout << "\nOk";
cout << "Now vector a, size of vector: " << a.size() << "and capacity of vector: " << a.capacity();
....
}


Как заполнять векторы и менять его значениями всё понятно. Но кто поможет написать алгоритм какой-нибудь сортировки несколькмих векторов или поиска вектора и, например, замерить время работы алгоритма (при этом желательно выводить различные результаты работы программы на экран как можно больше)? dry.gif blink.gif smile.gif


--------------------
Я не боюсь казаться смешным. Хмм..это не каждый может себе позволить...
Чтобы избежать критики, ничего не делайте, ничего не говорите, будьте никем...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Пойдет? (в MinGW отработало без проблем)

#include <stdlib.h>
#include <iostream>
#include <vector>
#include <iterator>

using namespace std;

int main () {

vector <int> a;
ostream_iterator <int> iter (cout, " ");

cout << "\n STL test";

cout << "\nCreated vector a, size of vector: " << a.size() << " and capacity of vector: " << a.capacity();
cout << "\nPlease resize vector:";

int N;
cin >> N;
a.resize(N);
cout << "\nOk";
cout << "Now vector a, size of vector: " << a.size() << "and capacity of vector: " << a.capacity();

for(int i = 0; i < N; ++i)
a[i] = rand() % 100;
clock_t start = clock();
cout << "\nbefore sort:" << endl;
copy (a.begin(), a.end(), iter);

sort (a.begin(), a.end(), greater<int>()); // Сортируем по убыванию

cout << "\nafter sort:" << endl;
copy (a.begin(), a.end(), iter);
clock_t end = clock();
cout << endl;

cout << "\n working time = " << (end - start) << " ticks";
return 0;
}
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


конечно! smile.gif good.gif
терь осталось понять что такое:

ostream_iterator <int> iter (cout, " "); ?

// понятно, что это начало замера времени, но что значит clock_t ?
clock_t start = clock();


Это я так понимаю вывод, но из какой он библиотеки? Где прототип можно найти?

copy (a.begin(), a.end(), iter);


Я, блин, руками вывод писал sad.gif:

for (int i=0; i<a.size(); i++) cout << a[i] << " ";


Тоже самое, где можно прототип найти?

sort (a.begin(), a.end(), greater<int>());


И если можно то как сравнение двух векторов сделать? Или например проверить их перпендикулярность с помощью STL возможно? wink.gif

Сообщение отредактировано: w@rlock -


--------------------
Я не боюсь казаться смешным. Хмм..это не каждый может себе позволить...
Чтобы избежать критики, ничего не делайте, ничего не говорите, будьте никем...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Цитата
Это я так понимаю вывод, но из какой он библиотеки? Где прототип можно найти?
Здесь:
SGI :: copy

Цитата
Тоже самое
Ну, сам же сказал, что то же самое:
SGI :: sort

Цитата
как сравнение двух векторов сделать?
С помощью операции equal:
SGI :: equal
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

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

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


Огромное спасибо за ссылку на ресурс good.gif good.gif good.gif


--------------------
Я не боюсь казаться смешным. Хмм..это не каждый может себе позволить...
Чтобы избежать критики, ничего не делайте, ничего не говорите, будьте никем...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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