файлы на карте памяти, я могу получать их имена в бесконечном цикле, пока файлы не закончатся. Задача у меня отсортировать их по имени. Для этого в стандартных функциях Arduino есть функция сравнения текстовых строк, и в зависимости от того какая строка первее по алфавиту, функция отвечает 0 или 1.
Не могу сообразить в каком формате сохранять имена файлов чтоб потом легко перечитать по алфавиту.
Первая идея это чтоб имя каждого файла было экземпляром класса, с полями String Name; и int Weight;, и при открытиии каждого следующего файла сравнивать его поле String с другими и устанавливать вес - Weight в списке.
Еще вариант создание двумерного массива, либо двух массивов, один из имен файлов типа String, второй из int чисел, которые "пересчитываются" при открытии каждого нового файла.
Второй вариант вроде бы проще, и я даже наверно по нему сделаю. Надеюсь не слишком запутанно написал.
Может есть стандартные варианты или готовые и я зря так заморачиваюсь?
Есть же set, который сортирует автоматически и при вставке дубли убирает. Если дубли нужны - multiset, есть map, если нужно как ключ значение хранить. Вариантов до фига, зачем самому сортировать? Тем более поиск в них потом будет за логарифмическую сложность.
std::vector <std:: string>, std:: sort Твой index тете не пригодится
Обсуждают сегодня