c++ - 创建带括号的 std::vector 作为默认大小

标签 c++ vector

#include <iostream>
#include <vector>

int main()
{
    static const unsigned TOTAL = 4;

    std::vector<int> v[TOTAL];

    v[2].push_back(37);

    //std::cout << v.size(); error 
    std::cout << v[0].size();
    std::cout << v[2].size();

    return 0;
}

是否可以像上面的代码一样用方括号来实例化 std::vector

MSVS 和 ideone 编译得很好,但是 vector 搞砸了(见错误行)。

我知道我可以使用 resize,但这是怎么回事?

最佳答案

您正在创建一个 TOTAL 大小的 vector 数组。

你需要的是

 std::vector<int> v(TOTAL);

这将构造一个具有 TOTAL 个零初始化 int 的 vector 。

然后,

std::cout << v.size() << std::endl; // prints 4
std::cout << v[0] << std::endl;     // prints 0

等等。

关于c++ - 创建带括号的 std::vector 作为默认大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22039931/

相关文章:

c++ - 甚至使用虚拟析构函数删除的段错误

c++ - C/C++ : What does this syntax mean?

c++ - 如何将 vector<vector<Point>> 轮廓转换为 CVPoint 或 cvpoint2d32f?

c++ - 在不断增长的 vector 中返回对元素的引用是不好的做法吗?

C++ 子程序 vector<vector<short>> 指针

c++ - 服务器在 Openssl 初始化时失败

c++ - 在 map/unordered_map 中使用 find 与 at

c++ - 如何将文件中的团队信息解析并存储到类中?

c++ - 如何在编译时检查是否存在可以使用一组特定参数调用的函数?

r - 将向量的系数添加到矩阵