150得票8回答
使用std::array相比C风格数组有哪些优势?

如果我想要创建一个非常简单的数组,例如:int myArray[3] = {1,2,3}; 我应该使用 std::array 吗?std::array<int, 3> a = {{1, 2, 3}}; 使用std::array相对于普通数组而言有什么优势?它在性能上更高吗?只是更容...

149得票6回答
将大小未知的 std::array 传递给函数

在C++11中,我该如何编写一个函数(或方法),它接受一个已知类型但未知大小的std::array? 在C++11中,如何编写一个接受已知类型但未知大小的std::array的函数(或方法)?// made up example void mulArray(std::array<in...

147得票5回答
std::array的默认初始化是什么?

使用C++11的std::array,我是否保证语法std::array<T, N> x;将默认初始化数组的所有元素? 编辑:如果不是,请问是否有一种语法适用于所有数组(包括零大小的数组),以将所有元素初始化为它们的默认值? 编辑:在cppreference上,默认构造函数描述...

89得票5回答
为什么std :: array没有一个可以接受数组填充值的构造函数?

缺少 std::array<T,size>::array(const T& value); 一个疏忽?对我来说,这似乎非常有用,而且动态容器(如std::vector)确实具有类似的构造函数。 我完全意识到 std::array<T,size>::fi...

62得票2回答
如何使用初始化列表创建std::array而无需直接提供大小

我该如何使a3编译通过?int main() { int a1[] = { 1, 2, 3 }; std::array<int, 3> a2 = { 1, 2, 3 }; std::array<int> a3 = { 1, 2, 3 }; } 使...

57得票6回答
获取std::array的大小而不需要实例化

考虑到这个结构:struct Foo { std::array<int, 8> bar; }; 如果没有Foo的实例,我该如何获取bar数组的元素数量?

49得票8回答
使用常量值初始化std::array

我需要初始化std::array中所有元素的值,就像使用std::vector可以做到的那样。#include <vector> #include <array> int main() { std::vector<int> v(10, 7); /...

49得票4回答
向量数组的内存布局是什么?

有人可以解释一下内存布局吗?std::vector<std::array<int, 5>> vec(2) 它是否提供一个由2行5个元素组成的二维数组的连续内存块? 据我了解,向量的向量std::vector<std::vector<int>> ...

47得票4回答
C++11中std::array大小为零是否有原因?

考虑以下代码片段,它是C++11编译器完美接受的:#include <array> #include <iostream> auto main() -> int { std::array<double, 0> A; for(auto i :...

42得票3回答
使用std::array方便地声明2D(甚至更高维度)数组的方法

我即将把很多旧的C++代码转换为更现代化的C++。 那段代码中有许多原始的2D数组,例如: Foo bar[XSIZE][YSIZE]; 我正准备用这些声明来替换。 std::array<std::array<Foo, YSIZE>, XSIZE> bar; ...