170 похожих чатов

Привет всем. Сильно извиняюсь, я с очень ламерским вопросом. Есть

файлы на карте памяти, я могу получать их имена в бесконечном цикле, пока файлы не закончатся. Задача у меня отсортировать их по имени. Для этого в стандартных функциях Arduino есть функция сравнения текстовых строк, и в зависимости от того какая строка первее по алфавиту, функция отвечает 0 или 1.
Не могу сообразить в каком формате сохранять имена файлов чтоб потом легко перечитать по алфавиту.
Первая идея это чтоб имя каждого файла было экземпляром класса, с полями String Name; и int Weight;, и при открытиии каждого следующего файла сравнивать его поле String с другими и устанавливать вес - Weight в списке.
Еще вариант создание двумерного массива, либо двух массивов, один из имен файлов типа String, второй из int чисел, которые "пересчитываются" при открытии каждого нового файла.
Второй вариант вроде бы проще, и я даже наверно по нему сделаю. Надеюсь не слишком запутанно написал.
Может есть стандартные варианты или готовые и я зря так заморачиваюсь?

3 ответов

3 просмотра

Есть же set, который сортирует автоматически и при вставке дубли убирает. Если дубли нужны - multiset, есть map, если нужно как ключ значение хранить. Вариантов до фига, зачем самому сортировать? Тем более поиск в них потом будет за логарифмическую сложность.

std::vector <std:: string>, std:: sort Твой index тете не пригодится

Похожие вопросы

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
70
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
25
Книга Юрова В.И пойдёт для обучения?
Botsman
24
Люди добрые, помогите с идеями, потому что свои закончились. У клиента падает софтина в момент инициализации модуля OtlEventMonitor на RegisterWindowMessage('Gp/OtlTaskEvents/...
Михаил Усков
7
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
> Примечательно, что новый владелец удаляет из GitHub любые жалобы, указывающие на подозрительную активность или смену владельца, и, видимо, рассчитывает на то, что пользовате...
Alex Sherbakov
2
GridView fully ignored first parent(SizedBox), and take width from second parent(Container). How can I constrain GridView by first parent? Widget build(BuildContext context) {...
Hamster
1
Hey there Which is the best Linux destro for developers (coding)? To my research on reddit, they said Linux mint is good for mid level spec and Ubuntu for high Lev hardwar...
Wiz 🪄
11
И ещё вопрос: можно ли типа как на дос как-то запариться и с помощью прерываний выводить текст, вместо функции printf ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
34
а мы ещё не созрели до того, чтобы создать отдельный чатик про настройку редакторов?
Cheese Syrowiecki
16
Карта сайта