Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Missing functionality in bulk visit

Aperta
#324 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
cpp
Ambito
api

Direzione di ricerca

Inizia leggendo l'API cvisit esistente e i suoi overloads, concentrandoti su come attraversa l'intervallo di chiavi e invoca il callback. Determina dove è definito il comportamento di bulk-visit e come vengono testati gli overload basati su iteratori. Il lavoro è completato quando l'iteratore aggiuntivo richiesto può essere attraversato in ordine di chiavi e riceve la posizione del risultato corrispondente.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

I want to write a concurrent cache where I can lookup multiple items at once:

template <class K, class V>
std::vector<std::optional<V>> lookup(const concurrent_flat_map<K, V>& map, const std::vector<K>& keys){
    std::vector<std::optional<V>> result;
    map.cvisit(keys.begin(), keys.end(), [&](const auto& x){
        // PROBLEM: how to get 'i'??
        result[i] = x->second;
    });
    return result;
}

I can't find a way to write this with the current API. I would like a new function that traverses an additional iterator in the same order:

template <class K, class V>
std::vector<std::optional<V>> lookup(const concurrent_flat_map<K, V>& map, const std::vector<K>& keys){
    std::vector<std::optional<V>> result;
    map.cvisit(keys.begin(), keys.end(), result.begin(), [&](const auto& x, auto& it){
        *it = x->second;
    });
    return result;
}
Lingua principale
C++
Stelle
93
Fork
88
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di boostorg/unordered

Tutte le issue di boostorg/unordered

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.