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

указатель массива на спиок в STL - C++

Восстановить пароль Регистрация
 
borovik
208 / 202 / 1
Регистрация: 25.07.2010
Сообщений: 1,131
17.10.2010, 17:53     указатель массива на спиок в STL #1
привет ещё раз.
1. нужно составить массив размерностью = 5.
2. заполнить его указателями на пять новых списков (SLT).
3. вставить например число 66 в конец списка, чтобы узнать в какой список вставлять, надо считать указатель, который хранится предположим в mas[3].
Реализовал так, и получил миллион ошибок...
Не могу всё перевести в код, особенно пункт 3 хелп

C++
1
2
3
4
5
6
7
8
9
10
11
 int x, char a; int mas[5];
    list<int>p0; list<int>::iterator i0; mas[0] = *i0;
    list<int>p1; list<int>::iterator i1; mas[1] = *i1;
    list<int>p2; list<int>::iterator i2; mas[2] = *i2;
    list<int>p3; list<int>::iterator i3; mas[3] = *i3;
    list<int>p4; list<int>::iterator i4; mas[4] = *i4;
    list<int>p5; list<int>::iterator i5; mas[5] = *i5;
    cout<<"Введите число: ";
    cin>>x;
    a = mas[n]; //дальше синтаксис не позволяет :)
      // чувствую бред
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
17.10.2010, 18:02     указатель массива на спиок в STL #2
borovik,
C++
1
2
3
4
5
6
7
int x, char a; vector<list<int> > mas;
        list<int>p0; mas.push_back(p0);
        list<int>p1; mas.push_back(p1);
        list<int>p2; mas.push_back(p2);
        list<int>p3; mas.push_back(p3);
        list<int>p4; mas.push_back(p4);
        list<int>p5; mas.push_back(p5);
Ну заполнить например можно так.
Хотя это не указателями конечно, но заполняет ведь)
borovik
208 / 202 / 1
Регистрация: 25.07.2010
Сообщений: 1,131
17.10.2010, 19:47  [ТС]     указатель массива на спиок в STL #3
не совсем так, например число которое я хочу добавить x=3, и w = 4 который означает что из mas[4] получить указатель на определенный список и в этот список в конец добавить число x.

Добавлено через 33 минуты
Вот нашёл что надо
Кликните здесь для просмотра всего текста
Хеш-таблица с цепочками коллизий основана на STL контейнере vector, элементами которого являются STL контейнеры типа list, представляющие собой структуры данных для цепочек коллизий. Размер массива вычисляется в конструкторе класса в зависимости от типа хеширования, при выбранном в работе методе хеширования (свёртка, комбинированная с выбором цифр) размер массива должен быть равен степени числа 10. Вставка элемента в таблицу осуществляется путём преобразования ключа в индекс таблицы и последующей вставки элемента в выбранный список (в конец списка).


Добавлено через 1 час 5 минут
неужели никто синтаксис stl не знает
NightmareZ
 Аватар для NightmareZ
1336 / 559 / 37
Регистрация: 31.03.2009
Сообщений: 1,907
17.10.2010, 19:56     указатель массива на спиок в STL #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от borovik Посмотреть сообщение
неужели никто синтаксис stl не знает
Знают. Только на твои посты отвечать неохото, потому что ты фигню какую-то несёшь. Ну вот:

Цитата Сообщение от borovik Посмотреть сообщение
1. нужно составить массив размерностью = 5.
Массив размерностью 5 - это пятимерный массив:
C++
1
int arr[][][][][];
Тебе же нужен массив размером пять (элементов).

Цитата Сообщение от borovik Посмотреть сообщение
2. заполнить его указателями на пять новых списков (SLT).
STL, а не SLT. Ибо Standard Template Library.

И за какой радостью тут указатели?

Цитата Сообщение от borovik Посмотреть сообщение
// чувствую бред
Правильно чувствуешь.

C++
1
2
3
4
5
// Создали массив списков.
std::list<int> arr[5];
 
// Добавляем новый элемент в третий список.
arr[2].push_back(66);
borovik
208 / 202 / 1
Регистрация: 25.07.2010
Сообщений: 1,131
17.10.2010, 20:10  [ТС]     указатель массива на спиок в STL #5
NightmareZ, последние две строчки то что мне и надо
Как вывести это дело вида
51
6325
7545903
345
Постоянно ошибка диапазона.
C++
1
2
3
for(int i=0; i<?; i++)
  for(int j=0; j<?; j++)
    cout<<arr[i][j]<<endl;
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
17.10.2010, 20:13     указатель массива на спиок в STL #6
borovik, Используйте алгоритм copy.
C++
1
std::copy(Arr[i].begin(), Arr[i].end(), std::ostream_iterator<int>(std::cout, " "));
Например
borovik
208 / 202 / 1
Регистрация: 25.07.2010
Сообщений: 1,131
17.10.2010, 20:24  [ТС]     указатель массива на спиок в STL #7
Lavroff вылетает
указатель массива на спиок в STL
 Комментарий модератора 
Во избежании потери информации на сторонних ресурсах загружайте изображения на форум через Вложения в Расширенном режиме редактирования сообщений.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
17.10.2010, 20:25     указатель массива на спиок в STL #8
borovik, Код в студию.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2010, 20:36     указатель массива на спиок в STL
Еще ссылки по теме:

Внутреннее устройство многомерного массива и неявное преобразование массива в указатель C++
C++ Передача массива в stl::queue
C++ Указатель массива int

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
borovik
208 / 202 / 1
Регистрация: 25.07.2010
Сообщений: 1,131
17.10.2010, 20:36  [ТС]     указатель массива на спиок в STL #9
Lavroff, да, заработало трабл был в пространстве имен, спс всем за терпение всем +
Yandex
Объявления
17.10.2010, 20:36     указатель массива на спиок в STL
Ответ Создать тему
Опции темы

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