C++ 在cpp-boost库中使用数组

C++ 在cpp-boost库中使用数组,c++,boost,C++,Boost,我刚刚开始使用boost库,需要使用boost::array。我希望数组N的大小取决于我将加载到程序中的某个矩阵的大小 我发现如果我预先定义了大小,即我知道矩阵的大小是10,那么 const int N = 10; typedef std::pair<int,int> Edge; array<Edge,N> edges; const int N=10; typedef std::对边; 阵列边缘; 工作正常,我可以选择使用数组边。然而,如果我没有明确地说const

我刚刚开始使用boost库,需要使用boost::array。我希望数组N的大小取决于我将加载到程序中的某个矩阵的大小

我发现如果我预先定义了大小,即我知道矩阵的大小是10,那么

const int N = 10; 
typedef std::pair<int,int> Edge; 
array<Edge,N> edges;
const int N=10;
typedef std::对边;
阵列边缘;
工作正常,我可以选择使用数组
。然而,如果我没有明确地说
const int N=10
,而是根据诸如
const int N=b
其中b是某个整数,而有N,那么我得到一个错误
'N'不能出现在常量表达式中


非常感谢您的帮助。

boost::array
和模板参数通常需要常量表达式作为参数。这是因为模板是在编译时而不是运行时计算的


如果您需要运行时动态数组,那么您可能需要的是
std::vector

boost::array
无法动态调整大小,它的特定用途是固定大小的数组

如果要在运行时调整其大小,可以使用
std::vector


两个类型相同但大小不同的
boost::array
是不同类型的对象,彼此不兼容。

b来自哪里?如果编译时没有已知大小,则无法使用
boost::array
。看起来您需要使用不同的容器。谢谢您的帮助,我将切换到向量。谢谢您的帮助,我将切换到向量。