conjunto (STL/CLR)
A classe de modelo descreve um objeto que controla uma seqüência de comprimento variando de elementos que tem acesso bidirecional.Use o contêiner set para gerenciar uma seqüência de elementos como uma árvore balanceada (quase) ordenada de nós, cada um elemento de armazenamento.
Na descrição abaixo, GValue é o mesmo que GKey, que por sua vez é o mesmo que Key , a menos que o último é um tipo de referência, caso em que é Key^.
template<typename Key>
ref class set
: public
System::ICloneable,
System::Collections::IEnumerable,
System::Collections::ICollection,
System::Collections::Generic::IEnumerable<GValue>,
System::Collections::Generic::ICollection<GValue>,
System::Collections::Generic::IList<GValue>,
Microsoft::VisualC::StlClr::ITree<Gkey, GValue>
{ ..... };
Parâmetros
- Chave
O tipo de componente fundamental de um elemento na seqüência controlada.
Membros
Definição de tipo |
Descrição |
---|---|
O tipo de um iterador constante para a seqüência controlada. |
|
O tipo de uma referência constante a um elemento. |
|
O tipo de um iterador inverso constante para a seqüência controlada. |
|
O tipo de uma distância (possivelmente assinado) entre dois elementos. |
|
O tipo de interface genérica para o recipiente. |
|
O tipo de um iterador para a interface genérica para o recipiente. |
|
O tipo de um iterador inverso para a interface genérica para o recipiente. |
|
O tipo de um elemento da interface genérica para o recipiente. |
|
O tipo de um iterador para a seqüência controlada. |
|
O delegado pedido de duas chaves. |
|
O tipo de uma chave de ordenação. |
|
O tipo de uma referência a um elemento. |
|
O tipo de um iterador inverso para a seqüência controlada. |
|
O tipo de uma distância (não negativo) entre dois elementos. |
|
O delegado pedido para dois valores de elemento. |
|
O tipo de um elemento. |
Função de membro |
Descrição |
---|---|
Designa o início da seqüência controlada. |
|
Remove todos os elementos. |
|
Contagens de elementos correspondentes a uma chave especificada. |
|
Testes se elementos não estão presentes. |
|
Designa o final da seqüência controlada. |
|
Localiza o intervalo que corresponde a uma chave especificada. |
|
Remove os elementos em posições especificadas. |
|
Localiza um elemento que coincida com uma chave especificada. |
|
Adiciona elementos. |
|
Copia o delegado pedido de duas chaves. |
|
Localiza o início do intervalo que corresponde a uma chave especificada. |
|
Constrói um objeto de valor. |
|
Designa o início da seqüência controlada revertida. |
|
Designa o final da seqüência controlada revertida. |
|
Constrói um objeto de recipiente. |
|
Conta o número de elementos. |
|
Troca o conteúdo dos dois recipientes. |
|
Copia a seqüência controlada para uma nova matriz. |
|
Localiza o final do intervalo que corresponde a uma chave especificada. |
|
Copia o delegate pedido para dois valores de elemento. |
Operator |
Descrição |
---|---|
Substitui a seqüência controlada. |
|
Determina se um set não é igual a outro objeto set objeto. |
|
Determina se um set objeto é menor que outro set objeto. |
|
Determina se um set objeto é menor ou igual a outro set objeto. |
|
Determina se um set objeto é igual a outro set objeto. |
|
Determina se um set objeto é maior que o outro set objeto. |
|
Determina se um set objeto é maior ou igual a outro set objeto. |
Interfaces
Interface |
Descrição |
---|---|
Duplica um objeto. |
|
Por meio de elementos na seqüência. |
|
Manter o grupo de elementos. |
|
Seqüência pelos elementos digitados. |
|
Manter o grupo de elementos digitados. |
|
ITree < chave, valor > |
Manter um contêiner genérico. |
Comentários
O objeto aloca e libera o armazenamento para a seqüência que ele controla como nós individuais.Ele insere elementos em uma árvore balanceada (quase) que mantém ordenada alterando os links entre os nós nunca copiando o conteúdo de um nó para outro.Isso significa que você pode inserir e remover elementos livremente sem atrapalhar elementos restantes.
O objeto ordena a seqüência que ele controla chamando um objeto delegado armazenado do tipo set::key_compare (STL/CLR).Você pode especificar o objeto delegado armazenado quando você construir o conjunto; Se você não especificar nenhum objeto delegado, o padrão é a comparação operator<(key_type, key_type).Acessar este objeto armazenado chamando a função de membro set::key_comp (STL/CLR)().
Um objeto de delegado deve impor uma ordem fraca estrita em chaves do tipo set::key_type (STL/CLR).Isso significa que, para quaisquer duas chaves X e Y:
key_comp()(X, Y)Retorna o Boolean mesmo resultar em cada chamada.
Se key_comp()(X, Y) for true, em seguida, key_comp()(Y, X) deve ser false.
Se key_comp()(X, Y) for true, em seguida, X é dito ser solicitados antes de Y.
Se !key_comp()(X, Y) && !key_comp()(Y, X) for true, em seguida, X e Y disse ter pedido equivalente.
Para qualquer elemento X que precede Y na seqüência controlada, key_comp()(Y, X) é falso.(Para o objeto delegado padrão, as chaves nunca diminuir no valor.) Ao contrário da classe de modelo conjunto (STL/CLR), um objeto de classe de modelo set não requer chaves para todos os elementos são exclusivas.(Duas ou mais teclas podem ter pedido equivalente).
Cada elemento serve como um ey e um valor.A seqüência é representada de forma que permite a pesquisa, inserção e remoção de um elemento arbitrário com um número de operações proporcionais ao logaritmo do número de elementos na seqüência (tempo logarítmica).Além disso, inserir um elemento invalida não iteradores e remover um elemento invalida os iteradores que apontem para o elemento removido.
Um conjunto suporta iteradores bidirecional, o que significa que o passo dadas um iterador que designa um elemento na seqüência controlada de elementos adjacentes.Um nó principal especial corresponde ao iterador retornado por set::end (STL/CLR)().Você pode diminuir este iterador para alcançar o último elemento na seqüência controlada, se presente.Você pode incrementar um iterador de conjunto para alcançar o nó principal e, em seguida, comparar igual a end().Mas não cancelam o iterador retornado por end().
Observe que você não pode se referir a um elemento do conjunto dado diretamente de sua posição numérica – o que requer um iterador de acesso aleatório.
Um iterador de conjunto armazena um identificador de nó conjunto associado, que por sua vez armazena um identificador de seu contêiner associado.Você pode usar iteradores somente com seus objetos de recipiente associado.Um iterador de conjunto permanece válido desde que seu nó conjunto associado é associado um conjunto.Além disso, um iterador válido é dereferencable--ele pode ser usado para acessar ou alterar o valor do elemento designa – desde que não é igual a end().
Apagar ou remover um elemento chama o destruidor para o valor armazenado.Destruir o recipiente apaga todos os elementos.Assim, um recipiente cujo tipo de elemento é uma classe ref garante que nenhum elemento outlive no recipiente.Entretanto, observe que um recipiente de alças não not destruir seus elementos.
Requisitos
Cabeçalho: < cliext/conjunto >
Namespace: cliext