首頁 >後端開發 >C++ >如何在 C 中使用硬編碼元素優雅地初始化 std::vector ?

如何在 C 中使用硬編碼元素優雅地初始化 std::vector ?

Susan Sarandon
Susan Sarandon原創
2024-12-22 20:29:59202瀏覽

How Can I Elegantly Initialize a std::vector with Hardcoded Elements in C  ?

使用硬編碼元素對std::vector 進行優雅的初始化

雖然在C 中初始化數組很簡單,例如int a[ ] = {10, 20, 30},以類似的方式初始化std::vector 可能看起來很麻煩。以下是兩種實現相同結果的優雅方法:

C 11 初始化器清單

在C 11 及更高版本中,您可以使用初始化器清單來初始化std::直接向量:

std::vector<int> v = {1, 2, 3, 4};

GCC 從4.4 版本開始支援此語法。不過,VC 2010 尚不支援此功能。

Boost.Assign 函式庫

另外,Boost.Assign 函式庫提供了一個方便的方法來初始化std::vector:

#include <boost/assign/list_of.hpp>
...
std::vector<int> v = boost::assign::list_of(1)(2)(3)(4);

或:

#include <boost/assign/std/vector.hpp>
using namespace boost::assign;
...
std::vector<int> v;
v += 1, 2, 3, 4;

請注意,後一種語法由於內部使用std::deque而涉及少量開銷。因此,對於效能關鍵的程式碼,請考慮直接使用 std::vector 初始值設定項目列表,如 Yacoby 在原始問題中所建議的那樣。

以上是如何在 C 中使用硬編碼元素優雅地初始化 std::vector ?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn