gpt4 book ai didi

c++ - 按列访问矩阵的指针

转载 作者:行者123 更新时间:2023-11-28 07:47:01 24 4
gpt4 key购买 nike

使用以下代码,我可以访问指向矩阵的指针的行:

#include <iostream>
int main(void) {
const int size = 10;
float **mat = new float*[size];
int i,j;
for (i = 0; i != size; ++i) {
mat[i] = new float[size];
for (j = 0; j != size; ++j) {
mat[i][j] = i * size + j;
}
}
float *p = mat[size-1];
for (i = 0; i != size; ++i) {
std::cout << p[i] << " ";
}
std::cout << std::endl;
return 0;
}

打印:

90 91 92 93 94 95 96 97 98 99

有没有办法让我也可以访问该列?非常感谢您:)

编辑:抱歉,我的问题被误解了。我需要的是指向矩阵垫中一列的指针。我不认为这是可能的,是吗?

EDIT2:我基本上需要的是一个指针,这样我就可以转换为:

__m128 *m_ptr = (__m128*) p;

每次额外的迭代都需要 O(n),这应该避免,因为我想向量化并加速代码。行访问简单快捷。列访问也应该是可能的???!

最佳答案

好吧,如果您想访问(不是您已经访问的列)的元素,那应该很简单:

for (i = 0; i != size; ++i)
{
std::cout << mat[i][size - 1] << " ";
}

顺便说一句,您的代码正在泄漏,因为您分配了永远不会释放的内存。

关于c++ - 按列访问矩阵的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14734535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com