首頁 > 後端開發 > C++ > 如何有效地將 std::map 中的鍵和值提取到向量中?

如何有效地將 std::map 中的鍵和值提取到向量中?

Mary-Kate Olsen
發布: 2024-11-30 11:16:11
原創
438 人瀏覽過

How to Efficiently Extract Keys and Values from a std::map into a Vector?

從std::map 擷取鍵和值到Vector

從std::map 取得鍵或值並儲存它們在向量中是常見的操作。雖然有多種方法可以實現此目的,但下面重點介紹了兩種廣泛使用的方法:

使用自訂函子:

一種技術涉及建立轉換鍵值的自訂函子配對成所需的類型。例如,要檢索鍵:

struct RetrieveKey {
    template <typename T>
    typename T::first_type operator()(T keyValuePair) const {
        return keyValuePair.first;
    }
};
登入後複製

此函子可以與變換演算法一起使用來迭代映射並提取鍵。

使用迭代器:

更直接的方法是使用迭代器循環遍歷映射並直接存取鍵或值。此方法提供了更大的靈活性和對操作的控制:

for (std::map<int, int>::iterator it = m.begin(); it != m.end(); ++it) {
  keys.push_back(it->first);
  values.push_back(it->second);
}
登入後複製

Boost 庫選項:

如果可以選擇使用Boost 庫,則BOOST_FOREACH 宏提供簡潔易讀的迭代語法:

BOOST_FOREACH(pair<int, int> p, m) {
  v.push_back(p.first);
}
登入後複製

方法的選擇最終取決於具體的要求和偏好開發人員。函子方法提供了多功能性,並允許單獨處理鍵和值。迭代器提供對資料的直接且直接的存取。 Boost 函式庫選項以其簡潔的語法簡化了迭代。

以上是如何有效地將 std::map 中的鍵和值提取到向量中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板