C++ 使用c++;STL

C++ 使用c++;STL,c++,stl,C++,Stl,我试过这两种方法,但都不明白其中的区别 vector<int >a(n) and vector<int >a[n] vectora(n)和vectora[n] 请有人解释一下。谢谢你的问题的简单答案是: vectora(n)是一个初始大小为n元素的单个vector对象 vectora[n]是一个固定的nvector`对象数组,每个对象的初始大小为0 我不能称自己为有经验的C++用户,但我希望我的回答会有帮助。主要有3种方法创建一维数组< /p> vect

我试过这两种方法,但都不明白其中的区别

     vector<int >a(n) and vector<int >a[n]
vectora(n)和vectora[n]

请有人解释一下。谢谢你的问题的简单答案是:

  • vectora(n)
    是一个初始大小为
    n
    元素的单个
    vector
    对象

  • vectora[n]
    是一个固定的
    n
    vector`对象数组,每个对象的初始大小为0


我不能称自己为有经验的C++用户,但我希望我的回答会有帮助。主要有3种方法创建一维数组< /p>
  • vector vectorName(或)vector vectorName(numberOfElements,StartingValue)
  • 键入ArrayName[大小]
  • 类型*ArrayName
  • 如果你使用第一种方法,你可以做一些很好的事情,比如“vectorName.push_back(element)”,因此它是一个动态数组。基本上你不需要决定你需要的元素的大小

    如果使用第二种方法创建数组,则必须在使用前确定数组的最大大小


    如果使用第三种方法,您将创建一个指向数组第一个元素的指针,您可以使用new关键字在堆上分配空间,但您还需要确定它将占用多少空间。

    您的问题根本没有上下文,因此很难给出答案

    首先,向量和数组之间存在差异。数组是相同类型元素的固定大小容器,向量是相同类型元素的可调整大小的容器。对于数组,您不需要STL(尽管STL中有一个数组实现)

    以下是您的选择:

    #define ARRAY_SIZE 10
    
    int my_plain_arr[ARRAY_SIZE]; // can never store more than 10 elements
    std::vector<int> my_vector(ARRAY_SIZE); // 10 is the initial size, can grow
    std::array<int, ARRAY_SIZE> my_stl_array; // can never store more than 10 elements
    
    #定义数组大小10
    int my_plain_arr[数组大小];//不能存储超过10个元素
    std::vector my_vector(数组大小);//10是初始尺寸,可以生长
    std::array my_stl_array;//不能存储超过10个元素
    

    您的小代码示例显示的实际上是一个向量数组。

    您想做什么?使用STL实现整数数组对于固定大小的数组,请尝试
    const size\u t array\u size=42;int a[数组大小]
    @ThomasMatthews在C++11及更高版本中,consiser使用
    std::array
    代替:
    std::array a
    vectora{n}
    是一个具有单个元素值
    n
    的向量。。。仅适用于积分T和n。