とりあえず

ドッカンバトルのコード部分を転記。
「ドラゴンボールZ ドッカンバトル」「出現キャラ一覧」及び「出現キャラ提供割合」の表示に関する不具合の詳細

CardDatas CardModel:getMasterCardDatasByIds(const std:Vector & masterCardIds) Const
{
  vector results;
  results.resize(masterCardIds.size());
  size_t exists = 0,
  for (inti = 0; i < masterCardIds.size(); i++){
    auto p = results[i] = cardDataCache.fetch(masterCardIds[i]);
    if (p != nulptr) {
      exists++;
    }
  }
  if (masterCardIds.size() == exists) {
    return results;
  }
  string sq = form("SELECT * FROM cache.cards where id IN (%s)", join(masterCardIds, ",").c_str());

  int i = 0;
  DatabaseManager::getInstance()->query(sql, [this, &results, &i](sqlite3_stmt* stmt) {
    if(results[i]==nulptr) {
       results[i] = CardDataCache.store(make_shared(stmt));
    }
    i++;
  }
  return results;
}


わかるところだけ推測でコメント付け足すとこんな風?違ってたらごめんなさいで。

//masterCardIds: 全カードのIDの配列
CardDatas CardModel:getMasterCardDatasByIds(const std:Vector& masterCardIds) Const
{
  vector results; //カード情報の配列
  results.resize(masterCardIds.size());//配列のサイズ決定
  size_t exists = 0; //メモリ上に存在するカードIDの数

  //メモリ上に存在するカードIDの数をカウントする
  //cardDataCacheがおそらくメモリ上のデータ
  for (int i = 0; i < masterCardIds.size(); i++){
    //メモリに既にあるデータをカウント、格納
    auto p = results[i] = cardDataCache.fetch(masterCardIds[i]);//該当するIDがあるかチェック
    if (p != nulptr) {
      exists++;
    }
  }
  //全データがメモリにある場合には更新なしで終了。
  if (masterCardIds.size() == exists) {
    return results;
  }

  //以下、不足データがある場合、ストレージ(DB?)から差分を追加する(はずだった)処理

  //DBから全カード情報を読みだすSQL文の組み立て
  string sql = form("SELECT * FROM cache.cards where id IN (%s)", join(masterCardIds, ",").c_str());

  int i = 0;
  //この先が読めない。stmtどこ?
  DatabaseManager::getInstance()->query(sql, [this, &results, &i](sqlite3_stmt* stmt) {
    if(results[i]==nulptr) {
       results[i] = CardDataCache.store(make_shared(stmt));
    }
    i++;
  }
  return results;
}