Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 23.04.2013
Сообщений: 37

Используя класс list, в котором храняться фамилии студентов группы, организовать поиск по фамилии

21.08.2014, 13:43. Показов 3702. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дали задание: используя класс list, в котором храняться фамилии студентов группы, организовать поиск по фамилии. Не могу создать list с уже заданным содержимым.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.08.2014, 13:43
Ответы с готовыми решениями:

Из списка студентов группы вывести фамилии двух самых старших студентов.
Здравствуйте. Задача поставлена следующим образом: из списка студентов группы, где приведены фамилии и даты рождения, вывести фамилии двух...

Распечатать анкетные данные студентов интересующей вас группы. Фамилии студентов начинаются с букв I, F и G
!!!!!

Из списка студентов группы напечатать фамилии студентов-отличников
Из списка студентов группы, где приведены сведения: фамилия, оценки по трем предметам, напечатать фамилии студентов-отличников. ...

28
2393 / 1920 / 763
Регистрация: 27.07.2012
Сообщений: 5,560
21.08.2014, 13:51
C++
1
2
3
4
std::list<string> students;
students.push_back("Иванов");
students.push_back("Петров");
students.push_back("Сидоров");
1
11 / 11 / 0
Регистрация: 04.04.2014
Сообщений: 140
21.08.2014, 13:54
C++
1
2
3
4
5
string stud1("Petrov");
string stud2("ivanov");
std::list<string> students;
students.push_back(stud1);
students.push_back(stud2);
Это по заполнению списка(есть сомнение, но вроде должно работать). По поиску не подскажу
1
1 / 1 / 0
Регистрация: 23.04.2013
Сообщений: 37
21.08.2014, 13:55  [ТС]
ясно, спасибо, думал есть ещё какие-то способы
0
2393 / 1920 / 763
Регистрация: 27.07.2012
Сообщений: 5,560
21.08.2014, 13:57
Цитата Сообщение от Sandir Посмотреть сообщение
думал есть ещё какие-то способы
Ну они ещё есть:
C++
1
2
string names[3] = { string("Иванов"), string("Петров"), string("Сидоров") };
list<string> students(names, names + 3);
1
318 / 180 / 73
Регистрация: 18.01.2014
Сообщений: 387
21.08.2014, 14:00
C++11:
C++
1
std::list<std::string> students{ "Иванов", "Петров", "Сидоров" };
1
1 / 1 / 0
Регистрация: 23.04.2013
Сообщений: 37
21.08.2014, 18:43  [ТС]
John Prick, а вообще есть какой-то эквивалент счетчика в list? Потому что *it выдаёт именно значение, а не номер. Поясню:
C++
1
2
3
4
5
for(list<string>::iterator it = students.begin(); it != students.end(); ++it)
if(*it == "Иванов"){
cout << "Иванов учится в этой группе" << endl;
break;
}
Но можно как-то вывести при этом его номер по списку? Или это уже двумерный список?
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
21.08.2014, 19:08
John Prick, а вообще есть какой-то эквивалент счетчика в list?
Нету. А если бы даже был, работал бы все равно через одно место. Такова плата за вставку/удаление за константное время. Если нужно чтоб было можно получить номер произвольного элемента, пользуйтесь vector (с линейным временем вставки-удаления).

UPD Впрочем, можете посмотреть в сторону std::distance, он вроде бы и с листом должен работать.
1
1 / 1 / 0
Регистрация: 23.04.2013
Сообщений: 37
21.08.2014, 21:42  [ТС]
Цитата Сообщение от Renji Посмотреть сообщение
пользуйтесь vector (с линейным временем вставки-удаления)
Не подскажите, что это?
0
318 / 180 / 73
Регистрация: 18.01.2014
Сообщений: 387
21.08.2014, 21:45
Цитата Сообщение от Sandir Посмотреть сообщение
Не подскажите, что это?
C++
1
2
3
4
#include <vector>
...
std::vector<std::string> students;
students.push_back("Иванов");
http://www.cplusplus.com/reference/vector/vector/
1
1 / 1 / 0
Регистрация: 23.04.2013
Сообщений: 37
21.08.2014, 21:48  [ТС]
и как получить порядковый номер?
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
21.08.2014, 21:49
и как получить порядковый номер?
it-students.begin().
1
1 / 1 / 0
Регистрация: 23.04.2013
Сообщений: 37
21.08.2014, 21:54  [ТС]
спасибо, буду знать
0
2393 / 1920 / 763
Регистрация: 27.07.2012
Сообщений: 5,560
21.08.2014, 23:37
Цитата Сообщение от Sandir Посмотреть сообщение
а вообще есть какой-то эквивалент счетчика в list? Потому что *it выдаёт именно значение, а не номер.
C++
1
int index = std::distance(students.begin(), it);
1
1 / 1 / 0
Регистрация: 23.04.2013
Сообщений: 37
22.08.2014, 12:30  [ТС]
John Prick, а как бы это выглядело двумерным списком?
0
2393 / 1920 / 763
Регистрация: 27.07.2012
Сообщений: 5,560
22.08.2014, 12:39
Sandir, что такое двумерный список?
1
1 / 1 / 0
Регистрация: 23.04.2013
Сообщений: 37
22.08.2014, 12:43  [ТС]
где-то видел такое:
C++
1
list<list<int> myint> mylist
Добавлено через 32 секунды
UPD просто интересно как это работает
0
2393 / 1920 / 763
Регистрация: 27.07.2012
Сообщений: 5,560
22.08.2014, 13:12
Ну список списков. Работает также, как и всегда. В первом списке в качестве элементов будут списки целых чисел.
1
1 / 1 / 0
Регистрация: 23.04.2013
Сообщений: 37
22.08.2014, 13:22  [ТС]
Вот только у меня не компилируется, кидает ошибку на эту строку "некорректный аргумент шаблона"
0
2393 / 1920 / 763
Регистрация: 27.07.2012
Сообщений: 5,560
22.08.2014, 13:30
Что это?
list<list<int> myint> mylist
C++
1
list< list<int> > mylist;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.08.2014, 13:30
Помогаю со студенческими работами здесь

В файле, содержащем фамилии студентов и их оценки, записать большими буквами фамилии тех студентов, которые имеют средний балл более "4".
В файле, содержащем фамилии студентов и их оценки, записать большими буквами фамилии тех студентов, которые имеют средний балл более...

Напечатать фамилии студентов группы
Задание такое: Создать список студентов, указав: фамилия, имя, отчество студента, группу, оценки по 5 предметам: выш. мат, физика,...

Сортировка списка студентов группы по фамилии
Список студенческой группы записан в массиве структур. Каждая строка списка содержит фамилию студента и три экзаменационные оценки, причем...

Необходимо, чтобы в ComboBox можно было выбрать номер группы, после чего в DataGridView должны появится фамилии и имена студентов выбранной группы
Есть база данных (Access) с множеством таблиц. Для работы с ComboBox и DataGridView я использую две таблицы: Student и Gruppa, в которых...

Вывести на экран фамилии студентов 3 группы 1 курса
Создать список студентов из n строк (число n ввести с клавиатуры),содержащую следующую информацию : фамилия , курс, номер группы, оценка за...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru