Articles of iterador

Iteração emparelhada em C # ou enumerador de janela deslizante

Se eu tenho um IEnumerable como: string[] items = new string[] { “a”, “b”, “c”, “d” }; Eu gostaria de percorrer todos os pares de itens consecutivos (janela deslizante de tamanho 2). Qual seria (“a”,”b”), (“b”, “c”), (“c”, “d”) Minha solução foi esta public static IEnumerable<Pair> Pairs(IEnumerable enumerable) { IEnumerator e = enumerable.GetEnumerator(); e.MoveNext(); T […]

Por que usar funções de início e fim de não membro no C ++ 11?

Cada contêiner padrão possui um método de begin e end para retornar os iteradores para esse contêiner. Entretanto, o C ++ 11 aparentemente introduziu funções livres chamadas std::begin e std::end que chamam as funções de membro begin e end . Então, ao invés de escrever auto i = v.begin(); auto e = v.end(); você escreveria […]

Excluindo elementos do conjunto STL durante a iteração

Eu preciso passar por um conjunto e remover elementos que atendem a um critério predefinido. Este é o código de teste que eu escrevi: #include #include void printElement(int value) { std::cout << value << " "; } int main() { int initNum[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; […]

Como converter um iterador em um stream?

Eu estou procurando uma maneira concisa para converter um Iterator para um Stream ou mais especificamente para “visualizar” o iterador como um stream. Por motivo de desempenho, gostaria de evitar uma cópia do iterador em uma nova lista: Iterator sourceIterator = Arrays.asList(“A”, “B”, “C”).iterator(); Collection copyList = new ArrayList(); sourceIterator.forEachRemaining(copyList::add); Stream targetStream = copyList.stream(); Com […]

Qual é a diferença entre iterador e iterável e como usá-los?

Eu sou novo em Java e estou muito confuso com iterador e iterável. Alguém pode me explicar e dar alguns exemplos?

Como faço para escrever um iterador que retorna referências para si mesmo?

Estou tendo problemas para expressar o tempo de vida do valor de retorno de uma implementação do Iterator . Como posso compilar este código sem alterar o valor de retorno do iterador? Eu gostaria que retornasse um vetor de referências. É óbvio que não estou usando o parâmetro vitalício corretamente, mas depois de tentar várias […]

vetor apagar iterador

Eu tenho esse código: int main() { vector res; res.push_back(1); vector::iterator it = res.begin(); for( ; it != res.end(); it++) { it = res.erase(it); //if(it == res.end()) // return 0; } } “Um iterador de access random apontando para a nova localização do elemento que seguiu o último elemento apagado pela chamada de function, que […]

Como usar um iterador?

Estou tentando calcular a distância entre dois pontos. Os dois pontos que eu armazenei em um vetor em C ++: (0,0) e (1,1). Eu deveria obter resultados como 0 1.4 1.4 0 Mas o resultado real que eu tenho é 0 1 -1 0 Eu acho que há algo errado com a maneira como eu […]

Qual é a maneira mais eficaz de obter o índice de um iterador de um std :: vector?

Estou interagindo com um vetor e preciso do índice para o qual o iterador está apontando no momento. AFAIK isso pode ser feito de duas maneiras: it – vec.begin() std::distance(vec.begin(), it) Quais são os prós e contras desses methods?

Encontrar posição do elemento em C ++ 11 baseado em intervalo for loop?

Suponha que eu tenha o seguinte código: vector list; for(auto& elem:list) { int i = elem; } Posso encontrar a posição do elem no vetor sem manter um iterador separado?