【问题标题】:General Array/Pointer Data Type通用数组/指针数据类型
【发布时间】:2011-04-24 06:17:54
【问题描述】:

我正在编写一个 C++ 函数,该函数接受一个 string、一个 arraysize大批。它看起来像这样:

bool funcname (string skey, string sArr[], int arrSz)

我要传递几个数组数据类型,如doublecharlong int等,使用string作为数组的数据类型对吗?或者有没有我可以使用的通用数据类型?

提前致谢。

【问题讨论】:

    标签: c++ arrays types


    【解决方案1】:

    以这种方式使用字符串是不好的 imo。除其他外,您正在发送一个字符串数组。最好使用 std::vector。然后,您可以按如下方式对函数进行模板化:

    template< typename T >
    bool 
    funcname (const std::string& skey, const std::vector< T >& arr )
    

    这样您可以直接查询向量的大小,并且可以传递任何数据类型的向量。

    还请记住,将结构作为 const 引用而不是具有结构的“潜在”副本发送效率要高得多。

    【讨论】:

    • 其实,我不只是发送字符串数组,而是发送不同数据类型的数组。
    • 嗯,你正在发送一个字符串数组:P 你是说“sArr”可能包含一些双精度数、一些浮点数和一些字符等?
    • 似乎你只需要矢量(或另一个容器)然后
    • 这是一个例子(使用我的版本)。 double dArr[10] = { //values }; funcname("randstring", dArr, 10); 也:int iArr[5] = { //values }; funcname("somerandstring", iArr, 5);
    【解决方案2】:

    如果你想要数组本身

    template <typename T>
    bool funcname (T key, T Arr[], int arrSz)
    {
    //T is the type of array you'll pass
    }
    

    也可以在谷歌上搜索功能模板。高温

    【讨论】:

      猜你喜欢
      • 2012-05-12
      • 1970-01-01
      • 1970-01-01
      • 2019-04-24
      • 1970-01-01
      • 2017-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多