Короткий ответ - это будет раздражающим, но не трудное.
Java и C# имеют все равно базовые понятия, и много библиотек очень близко в стиле, но Вы собираетесь продолжать ударять голову через различные различия.
, Если Вы говорите о свойствах класса, Java имеет тех. Синтаксис
public class MyClass {
public static int MY_CLASS_PROPERTY = 12;
}
, я серьезно предложил бы, чтобы Вы получили лучший IDE. Любой из Netbeans, Eclipse, ИДЕИ, JBuider собирается сделать Ваш переход намного более приятным.
std :: distance
- это то, что вам нужно. Думаю, вам понадобится std :: distance (set.begin (), find_result)
Я не думаю, что это имеет смысл - наборы «самоключаются» и сортируются, таким образом, «индекс» будет недействительным при изменении набора.
Конечно, это зависит от того, как вы собираетесь использовать индекс, и если набор по существу статичен (скажем, словарь).
Несмотря на то, что здесь написали другие, я не думаю, что «индекс» или «позиция» имеют значение по отношению к набору. С математической точки зрения, набор раскрывает только своих членов и, возможно, их количество элементов. Единственные значимые операции включают в себя проверку того, является ли элемент членом набора, а также объединение или вычитание наборов для получения новых наборов.
Некоторые люди говорят о наборах как о структурах данных в более широких терминах, по аспектам являются ли они «упорядоченными» или «неупорядоченными», и разрешают ли они дублирование или обеспечивают уникальность. Первый фасет различает массив с защитой вставки O (n) , где при попытке вставить элемент сначала сканируются существующие элементы, чтобы увидеть, существует ли новый элемент, и, если нет, вставляет новый элемент в конец и хеш-таблица, что может сохранять такой порядок только в цепочке ведра. Такое дерево, как Красно-Черное дерево, используемое std :: set
, находится где-то посередине; его порядок обхода детерминирован по отношению к строгому слабому порядку , налагаемому предикатом компаратора, но, в отличие от массива, описанного выше, он не сохраняет порядок вставки .
другой аспект - допускает ли набор повторяющиеся элементы - не имеет смысла в математике и более точно описывается как мешок . Такая структура признает разницу между идентичностью и ценностной «идентичностью».
Ваша проблема может заключаться в заботе о некотором положении; неясно, что означает эта позиция, но я ожидаю, что вам понадобится некоторая структура данных отдельно от std :: установите
для правильного моделирования. Возможно, подойдет отображение std :: map
из вашего набора элементов в каждую позицию. Это не гарантирует, что позиции уникальны.
Это также может помочь прояснить проблему, если подумать, как вы моделируете ее как отношения , например, в реляционной базе данных. Что составляет ключ? Какие части объектов могут изменяться независимо?