Articles of iterador

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?

Usando a variável iteradora de loop foreach em uma expressão lambda – por que falha?

Considere o seguinte código: public class MyClass { public delegate string PrintHelloType(string greeting); public void Execute() { Type[] types = new Type[] { typeof(string), typeof(float), typeof(int)}; List helloMethods = new List(); foreach (var type in types) { var sayHello = new PrintHelloType(greeting => SayGreetingToType(type, greeting)); helloMethods.Add(sayHello); } foreach (var helloMethod in helloMethods) { Console.WriteLine(helloMethod(“Hi”)); } […]

Qual é a melhor maneira de iterar mais de dois ou mais contêineres simultaneamente

O C ++ 11 fornece várias maneiras de iterar nos contêineres. Por exemplo: Loop baseado em intervalo for(auto c : container) fun(c) std :: for_each for_each(container.begin(),container.end(),fun) No entanto, qual é a maneira recomendada de iterar mais de dois (ou mais) contêineres do mesmo tamanho para realizar algo como: for(unsigned i = 0; i < containerA.size(); […]

Por que o iterador do Java não é um iterável?

Por que a interface do Iterator não se estende Iterable ? O método iterator() poderia simplesmente retornar this . É de propósito ou apenas um descuido dos designers de Java? Seria conveniente poder usar um loop for-each com iteradores como este: for(Object o : someContainer.listSomeObjects()) { …. } onde listSomeObjects() retorna um iterador.

Como implementar corretamente os iteradores e const_iterators personalizados?

Eu tenho uma class de contêiner personalizado para o qual eu gostaria de escrever as classs iterator e const_iterator . Eu nunca fiz isso antes e não consegui encontrar um apropriado como fazer. Quais são as diretrizes sobre a criação do iterador e o que devo saber? Eu também gostaria de evitar a duplicação de […]

Iterador de nivelamento

Existe alguma implementação do iterador existente (talvez em reforço) que implementa algum tipo de iterador de nivelamento? Por exemplo: unordered_set<vector > s; s.insert(vector()); s.insert({1,2,3,4,5}); s.insert({6,7,8}); s.insert({9,10,11,12}); flattening_iterator<unordered_set<vector >::iterator> it( … ), end( … ); for(; it != end; ++it) { cout << *it << endl; } //would print the numbers 1 through 12

Por que os intervalos padrão do iterador são em vez de ?

Por que o padrão define end() como passado do final, em vez de no final real?