将二维vector类型的数据合并为一重指针传入cudaMemcpy()函数

本文探讨如何处理二维vector,其每行列数不一致的情况,以适应cudaMemcpy()函数。通过将每一行转化为指针并拼接,实现非标准N*M矩阵数据的传输。在转换过程中,需要注意内存大小的计算,以及数据类型与指针之间的转换。对于标准的n*m矩阵形式的二维vector,可以先转换为Mat类型再进行操作。
摘要由CSDN通过智能技术生成

若二维vector每行的列数不同,不是标准的N*M矩阵形式

cudaMemcpy()函数在传输数据时,参数需要为指针类型,因为实际数据的限制,初始数据是通过vector<vector<Vec4f>>的形式存储的,难点在于此二维vector每行的列数并不相同,并不是一个完美矩阵形式,在此记录一下自己的实现方式

首先说一下最终的实现方案:
首先将二维vector中的每行转换为指针,可见理解为每行一块小内存。然后通过函数memcpy()将每块小内存拼接在一起。

//将此二维vector转化为一维指针
vector<vector<Vec4f>> Match_Lines_L; 
//最后的结果指针
float* ans = new float[40000]; 

int newstride = 0;
for (int i = 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值