индекс или положение в станд.:: набор

Короткий ответ - это будет раздражающим, но не трудное.

Java и C# имеют все равно базовые понятия, и много библиотек очень близко в стиле, но Вы собираетесь продолжать ударять голову через различные различия.

, Если Вы говорите о свойствах класса, Java имеет тех. Синтаксис

public class MyClass {
    public static int MY_CLASS_PROPERTY = 12;
}

, я серьезно предложил бы, чтобы Вы получили лучший IDE. Любой из Netbeans, Eclipse, ИДЕИ, JBuider собирается сделать Ваш переход намного более приятным.

7
задан 25 November 2009 в 12:03
поделиться

3 ответа

std :: distance - это то, что вам нужно. Думаю, вам понадобится std :: distance (set.begin (), find_result)

15
ответ дан 6 December 2019 в 11:49
поделиться

Я не думаю, что это имеет смысл - наборы «самоключаются» и сортируются, таким образом, «индекс» будет недействительным при изменении набора.

Конечно, это зависит от того, как вы собираетесь использовать индекс, и если набор по существу статичен (скажем, словарь).

1
ответ дан 6 December 2019 в 11:49
поделиться

Несмотря на то, что здесь написали другие, я не думаю, что «индекс» или «позиция» имеют значение по отношению к набору. С математической точки зрения, набор раскрывает только своих членов и, возможно, их количество элементов. Единственные значимые операции включают в себя проверку того, является ли элемент членом набора, а также объединение или вычитание наборов для получения новых наборов.

Некоторые люди говорят о наборах как о структурах данных в более широких терминах, по аспектам являются ли они «упорядоченными» или «неупорядоченными», и разрешают ли они дублирование или обеспечивают уникальность. Первый фасет различает массив с защитой вставки O (n) , где при попытке вставить элемент сначала сканируются существующие элементы, чтобы увидеть, существует ли новый элемент, и, если нет, вставляет новый элемент в конец и хеш-таблица, что может сохранять такой порядок только в цепочке ведра. Такое дерево, как Красно-Черное дерево, используемое std :: set , находится где-то посередине; его порядок обхода детерминирован по отношению к строгому слабому порядку , налагаемому предикатом компаратора, но, в отличие от массива, описанного выше, он не сохраняет порядок вставки .

другой аспект - допускает ли набор повторяющиеся элементы - не имеет смысла в математике и более точно описывается как мешок . Такая структура признает разницу между идентичностью и ценностной «идентичностью».

Ваша проблема может заключаться в заботе о некотором положении; неясно, что означает эта позиция, но я ожидаю, что вам понадобится некоторая структура данных отдельно от std :: установите для правильного моделирования. Возможно, подойдет отображение std :: map из вашего набора элементов в каждую позицию. Это не гарантирует, что позиции уникальны.

Это также может помочь прояснить проблему, если подумать, как вы моделируете ее как отношения , например, в реляционной базе данных. Что составляет ключ? Какие части объектов могут изменяться независимо?

1
ответ дан 6 December 2019 в 11:49
поделиться
Другие вопросы по тегам:

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