Потоки и ввод/вывод в стандартной библиотеке C++:
en.cppreference.com/w/cpp/io
Если у вас уникальные ключи у структур, и не очень много их, юзаете для хранения вот это (реализовав компаратор):
en.cppreference.com/w/cpp/container/set
Если неуникальные или очень много, берете связный список и поддерживаете сортированность, вставляя в нужное место списка:
en.cppreference.com/w/cpp/container/list - список
https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%80%D... - сортировка
Проходиться и по сету и по списку можно итераторами, количество элементов вернет метод size().
Если вам что-то осталось непонятным, допишите. Если вам ничего не понятно, советую начать с изучения языка C++.