将矩阵转换为std :: vector [英] converting matrix to std::vector

查看:149
本文介绍了将矩阵转换为std :: vector的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下矩阵:

unsigned wins[8][3] = { { 0, 1, 2 }, { 3, 4, 5 }, { 6, 7, 8 }, { 0, 3, 6 }, { 1, 4, 7 }, { 2, 5, 8 }, { 0, 4, 8 }, { 2, 4, 6 } };

如何将其转换为std :: vector?

how to convert it into a std::vector?

推荐答案

您可以使用两个迭代器构造函数实例化一个带有 wins 中数据副本的向量:

You can use the two iterator constructor to instantiate a vector with a copy of of the data in wins:

unsigned* start = &wins[0][0];
std::vector<unsigned> vwins(start, start + (8 * 3));

这取决于指针算法,指针是迭代器的事实以及2D数组是连续的事实块,本质上是一维具有灵巧索引的数组。

This relies on pointer arithmetic, the fact that pointers are iterators, and the fact that 2D arrays are contiguous blocks, essentially 1D arrays with clever indexing.

这篇关于将矩阵转换为std :: vector的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆