【问题标题】:C++ container allowing access to rows and columns允许访问行和列的 C++ 容器
【发布时间】:2013-09-10 17:37:31
【问题描述】:

是否有一个简单容器的实现,可以在其中访问矩阵的整个维度(它的数字与列的数量相同)?

我知道没有标准的实现,但一定有人编造了什么?

所以不是只能访问一个整体的维度:

matrix[0]; // 1 2 3 4
matrix[1]; // 1 2 3 4
matrix[0][0] // 1

我想做的事:

matrix[ALL][0]; // 1 1
matrix[ALL][1]; // 2 2 

澄清:

在 R 中使用 matrix[ , 1] 和 matrix[1, ] 允许访问两个维度,在 Python 中:matrix[ :, 1] 和 matrix[1, :]。

【问题讨论】:

  • 你认为你的“matrix[ALL][0]”应该是什么数据类型?
  • valarrayslice 可能会有所帮助。
  • 最接近的构造可能是std::vector<std::vector<int> >?
  • @AlexandruBarbarosie int[2] {1,1} 作为内容?
  • 认为我了解最终目标,但您能否通过更具体的示例阐明ALL 的意义? (今天早上我可能只是慢了一点)。是您要访问的吗?

标签: c++ class matrix


【解决方案1】:

使用向量的向量:

vector< vector<int> > vec;

您访问列如下:

vec(1)

以及单个元素,例如:

vec(1)(1)

【讨论】:

  • 实际上,你会在这两种情况下使用operator[](size_t n) (vex[1][1]),但我认为 OP 并没有询问如何执行此操作。也许他/她是,但是....
  • 而向量的向量通常不是这种事情的特别好的实现。
  • 问题确实是选择vec("all elements here")(1)
猜你喜欢
  • 1970-01-01
  • 2011-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-24
  • 1970-01-01
  • 2017-10-15
相关资源
最近更新 更多