我正在编写 C ++ 函数,该函数接受字符串,数组和数量阵列。它看起来像这样:
bool funcname (string skey, string sArr[], int arrSz)
我想传递几种数组数据类型,例如double
,char
,long int
等。使用string
作为数组的数据类型是正确的吗? ?或者我可以使用通用数据类型吗?
提前致谢。
答案 0 :(得分:4)
以这种方式使用字符串是不好的。除了其他东西,你发送一个字符串数组。你最好使用std :: vector。然后,您可以按如下方式模拟函数:
template< typename T >
bool
funcname (const std::string& skey, const std::vector< T >& arr )
这样你可以直接查询向量的大小,你可以通过任何数据类型的向量。
还要记住,通过const引用发送结构的效率要高得多,而不是具有结构的“潜在”副本。
答案 1 :(得分:1)
如果你想要数组本身
template <typename T>
bool funcname (T key, T Arr[], int arrSz)
{
//T is the type of array you'll pass
}
也是谷歌的功能模板。 HTH