C++11:返回数组
C++11: returning an array
我目前面临着STL容器的一个有趣的情况。我有一个方法,它应该根据参数返回不同的对象静态数组。所述对象的类型为 array<SomeClass,>_>。
下划线的原因是它们不是所有大小相同的数组。由于数组包装得如此整齐,数组的大小不会改变,我希望不要被迫将数组转换为向量,因为现在不仅初始化非常整洁,而且我还发现数组是我想要的确切结构,而可调整大小的数组将是开销和矫枉过正。
我有机会实现我想要的吗?如果没有,还有比使用矢量更干净的解决方案吗?
是否可以在
编译时根据参数计算返回数组的大小? 如果是这样,则可以使用模板为_
提供正确的值。 例如,如果返回数组与某些参数数组的长度相同,那么您可以执行以下操作:
template<int N>
array<SomeClass, N> myFunc(array<Foo, N> someArg);
或者,如果你总是知道返回数组的正确大小(在编译时)在你调用它的站点,你可以这样做:
template<int N>
array<SomeClass, N> myFunc();
并称其为:
array<SomeClass, 5> = myFunc<5>();
如果没有,那么您可能必须使用向量。
您始终可以选择编写一个 array_view<T>
类,该类可以充当对任何N
array<T,N>
的引用。
相关文章:
- 为什么 C++ 中的字符数组返回其项目而不是地址?
- C++ bool 数组返回 1 或 0 以外的值
- C++ ostream 从对象数组返回数据
- 类中的重载运算符 [],因此它可以从模板类中的数组返回对象
- 指向对象的指针数组返回jibberish
- 具有基本结构的结构数组返回错误的答案
- 数组返回乐趣 movie_check()
- C++从字符数组返回类型为T的指针
- C++-将数组返回到主函数,并将数组传递给另一个函数
- C++:如何通过异常处理从越界数组返回值
- 整数数组返回类型
- 从字符串流复制到 char * 数组返回为函数参数
- C++函数从对象数组返回对象的副本.这是默认行为吗?
- 8字节数组返回长(C#到C++)
- 向c#数组返回一个字符数组c++
- 从并行数组返回值,并在以后的函数中使用这些值
- 将c++中的浮点数数组返回给Python
- 如何在gsoap中使字符串数组返回值
- 将两个字符相乘并向数组返回int
- C++套接字 - 从结构数组返回单个地址信息