当前位置:  开发笔记 > 编程语言 > 正文

向量的通用向量在C++中

如何解决《向量的通用向量在C++中》经验,为你挑选了2个好方法。

在C++中有一种很好的方法来实现(或伪造)一个通用矢量向量的类型吗?

忽略向量向量是一个好主意的问题(除非有等价的东西总是更好).假设它确实对问题进行了精确建模,并且矩阵不能准确地模拟问题.假设将这些事物作为参数的模板化函数确实需要操纵结构(例如调用push_back),因此它们不能仅仅采用泛型类型支持[][].

我想做的是:

template
typedef vector< vector > vecvec;

vecvec intSequences;
vecvec stringSequences;

但当然这是不可能的,因为typedef不能模板化.

#define vecvec(T) vector< vector >

很接近,并且可以保存在vecvecs上运行的每个模板化函数中复制类型,但不会受到大多数C++程序员的欢迎.



1> Johannes Sch..:

你想拥有template-typedef.这是被支持在当前的C++.解决方法是做

template
struct vecvec {
     typedef std::vector< std::vector > type;
};

int main() {
    vecvec::type intSequences;
    vecvec::type stringSequences;
}

在接下来的C++中(由于2010年称为c ++ 0x,c ++ 1x),这将是可能的:

template
using vecvec = std::vector< std::vector >;


我认为他们也已经确定了对>>的空间需求

2> Łukasz Milew..:

我使用在boost库中实现的Boost.MultiArray.

HTH

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有