首頁 > 後端開發 > C++ > 如何優化 C 中 2D std::vector 的初始化?

如何優化 C 中 2D std::vector 的初始化?

DDD
發布: 2024-11-28 07:38:10
原創
780 人瀏覽過

How Can I Optimize the Initialization of a 2D std::vector in C  ?

二維std::vector 的最佳化初始化

初始化多維std::vector 會帶來一定的挑戰,特別是在以高效率為目標時程式碼。考慮給定的範例:

std::vector<std::vector<int>> fog;
for (int i = 0; i < A_NUMBER; i++) {
    std::vector<int> fogRow;
    for (int j = 0; j < OTHER_NUMBER; j++) {
        fogRow.push_back(0);
    }
    fog.push_back(fogRow);
}
登入後複製

這種方法需要多個巢狀循環,並且顯得有些乏味。使用 std::vector::vector(count, value) 建構子有更最佳化的解決方案:

std::vector<std::vector<int>> fog(
    ROW_COUNT,
    std::vector<int>(COLUMN_COUNT)); // Defaults to zero initial value
登入後複製

在這種情況下,建構子採用初始大小和預設值。如果需要不同的預設值,可以如下指定:

std::vector<std::vector<int>> fog(
    ROW_COUNT,
    std::vector<int>(COLUMN_COUNT, 4));
登入後複製

此外,利用 C 11 中引入的統一初始化為向量初始化提供了一種簡潔易讀的方法:

std::vector<std::vector<int>> fog { { 1, 1, 1 },
                                    { 2, 2, 2 } };
登入後複製

以上是如何優化 C 中 2D std::vector 的初始化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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