搜尋

首頁  >  問答  >  主體

c++ - STL中是否有定长的数组容器,类似限制元素数目的vector,不要用c的原始数组

STL中是否有定长的数组容器,类似限制元素数目的vector,不要用c的原始数组

巴扎黑巴扎黑2766 天前1243

全部回覆(4)我來回復

  • 伊谢尔伦

    伊谢尔伦2017-04-17 13:29:23

    一般當你需要使用陣列的時候,std::vector是你的第一選擇,它在大多數情況下效率都是最高的,如果你需要指定長度的數組,可以使用reserve()預先分配空間,或使用參數為長度的建構函式(參考中的第3個)。例如:

    constexpr std::size_t init_size = 100;
    
    std::vector<int> vi1(init_size);
    
    std::vector<int> vi2;
    vi2.reserve(init_size);

    當然,也有類似內建的編譯時確定長度數組的模板類別std::array

    回覆
    0
  • PHPz

    PHPz2017-04-17 13:29:23

    c++11的array。

    初始化時指定vector的元素個數也挺方便的。

    回覆
    0
  • 迷茫

    迷茫2017-04-17 13:29:23

    有std::array啊,很好用的,比內建陣列好用多了

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-17 13:29:23

    編譯期的定長數組肯定用std::array,但是我感覺題主並不是指這個,而是C++ 17 新引入的變量指定的數組(這個函數在C 已經出現很久了),同時它附帶了一個容器std::dynarray 配合使用,建構函式時決定大小,然後無法變更。現在的話,可以用 std::experimental::dynarray,或是 gsl::dyn_array.

    回覆
    0
  • 取消回覆