es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Bucle C++ a través de los primeros K elementos de unordered_map.

Tengo un unordered_map que almacena conteos de enteros. Quiero recorrer el mapa, pero en lugar de recuperar todas las entradas, solo deseo obtener las primeras K. Se garantiza que el mapa tiene más de K entradas.

Me estoy encontrando con problemas cuando hago lo siguiente:

unordered_map<int, int=””> u_map;
// Lógica para poblar el mapa

for(auto it=u_map.begin(); it!=u_map.begin()+2; it++)
cout<first<<” “<second<<endl;

la expresión u_map.begin()+2 está causando el problema.

entonces, ¿es posible obtener solo las primeras k entradas de un mapa utilizando un bucle for_each en c ++? la=”” expresión=”” u_map.begin()+2=”” está=”” causando=”” el=”” problema.=”” entonces,=”” ¿es=”” posible=”” obtener=”” solo=”” las=”” primeras=”” k=”” entradas=”” de=”” un=”” mapa=”” utilizando=”” un=”” bucle=”” for_each=”” en=”” c=””></endl;

la expresión u_map.begin()+2 está causando el problema.

entonces, ¿es posible obtener solo las primeras k entradas de un mapa utilizando un bucle for_each en c ++?></int,>

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible obtener solo las primeras K entradas de un unordered_map utilizando un bucle for_each en C++. Un enfoque posible es el siguiente:

    “`c ++
    unordered_map<int, int=””> u_map;
    // Lógica para poblar el mapa

    int K = 2; // establecer K en el valor deseado
    int count = 0;
    for_each(u_map.begin(), u_map.end(), [&](auto& entry) {
    cout << entry.first << ” ” << entry.second << endl;
    count++;
    if(count == K) { // detener después de K entradas
    return;
    }
    });
    “`

    En este enfoque, utilizamos una función lambda con una captura para llevar un seguimiento del número de entradas impresas hasta ahora y salir del bucle después de imprimir K entradas. El bucle for_each itera sobre todas las entradas en el mapa, pero la función lambda solo imprime las primeras K entradas. Tenga en cuenta que el orden de las entradas impresas puede no ser el mismo que el orden en el que se insertaron en el mapa, ya que unordered_map no garantiza este orden.</int,>

Comments are closed.