Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 堆栈std::vectors以生成矩阵,类似于numpy.vstack_C++ - Fatal编程技术网

C++ 堆栈std::vectors以生成矩阵,类似于numpy.vstack

C++ 堆栈std::vectors以生成矩阵,类似于numpy.vstack,c++,C++,例如,是否有一种方法可以堆叠大小为N的两个std::vectors,以生成每N列2行的矩阵?类似于Python的np.vstack函数?如果不使用低效的向量向量(std::vector)解决方案或数组?只需使用1d数组即可。多维数组语法是邪恶的 const int width = 1024; const int height = 768; vector<float> matrix(0,width*height); float getCell(int row, int col) {

例如,是否有一种方法可以堆叠大小为N的两个
std::vectors
,以生成每N列2行的矩阵?类似于Python的np.vstack函数?如果不使用低效的向量向量(
std::vector
)解决方案或数组?

只需使用1d数组即可。多维数组语法是邪恶的

const int width = 1024;
const int height = 768;
vector<float> matrix(0,width*height);

float getCell(int row, int col)
{
    return matrix[row * width + col];
}

float setCell(int row, int col, float val)
{
    matrix[row * width + col] = val;
}
const int width=1024;
const int height=768;
向量矩阵(0,宽度*高度);
浮点getCell(整数行,整数列)
{
返回矩阵[行*宽+列];
}
浮点设置单元(整数行、整数列、浮点值)
{
矩阵[行*宽+列]=val;
}

为什么你认为向量向量是低效的?这不是一种罕见的做法。@lakeweb它的效率很低,因为它在内存中不是线性的。考虑到这个问题,我不这么认为,但是有很多矩阵实现。只要选择一个。我不想仅仅因为它而导入一个库。如果你有一个平面数组,并将其视为二维数组,那么访问器的开销可能和向量向量一样昂贵。因此,您可能想看看boost::gil中使用的技术。