Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将数字列表传递给C++;没有先建立阵列?_C++_Arrays_Function - Fatal编程技术网

C++ 将数字列表传递给C++;没有先建立阵列?

C++ 将数字列表传递给C++;没有先建立阵列?,c++,arrays,function,C++,Arrays,Function,我试图构建一个函数,该函数以以下方式接受数组: int inCommon = findCommon({54,56,2,10}, 4); int findCommon(int nums[], int len){ for(int i=0; i<len; i++) cout<<nums[i]<<endl; return 1; } 不,我相信{}只能用于初始化数组。您需要C++0x 不,这是不可能的。 但是您可以创建模板T*arrayCreator(…)函数

我试图构建一个函数,该函数以以下方式接受数组:

int inCommon = findCommon({54,56,2,10}, 4);

int findCommon(int nums[], int len){
  for(int i=0; i<len; i++)  cout<<nums[i]<<endl;
  return 1;
} 

不,我相信{}只能用于初始化数组。

您需要C++0x

不,这是不可能的。 但是您可以创建模板T*arrayCreator(…)函数之类的函数来创建您的数组,
或具有构造函数且参数计数未指定的数组包装器。

或者创建将具有重载运算符的对象,或者这在当时是不可能的。但是,在下一个C++标准C++ +0x中,这将使用整流器列表:

int findCommon(std::initializer_list<int> nums)
{
    std::initializer_list<int>::iterator it;
    for (it = nums.begin() ; it != nums.end() ; ++it)
    {
        std::cout << *it << std::endl;  
    }
    return 1;
}
int findCommon(std::initializer\u list nums)
{
std::initializer\u list::迭代器;
for(it=nums.begin();it!=nums.end();+it)
{

std::cout你可以用它做你想做的事。

啊,我也这么想,只是想看看它是否可行。GCC 4.4支持初始值设定项列表,现在就可以获得它的darwin端口。谢谢!漂亮的PDF。它还包含一个指向google视频的链接()也许是对更新的答案……或者重新把问题重写为C++ 98,我总是想知道处理这些事件的最好方法是什么,但是这些是从C继承的一个众所周知的不安全的东西,在现代C++中,比如“代码> STD::IngalIZErristListB/Cuth>和参数包是可用的,它们没有有用的用途。OSE,不应该被推荐。当然,因为你在C++ 11出来之前回答了,这是公平的,我只是从今天的角度来阐明。你可以考虑回答这个问题。当别人已经有的时候,为什么我会这么做?包括你。我并不是说答案是无效的,只是瓦拉格现在已经超标了。冷静下来。
int findCommon(std::initializer_list<int> nums)
{
    std::initializer_list<int>::iterator it;
    for (it = nums.begin() ; it != nums.end() ; ++it)
    {
        std::cout << *it << std::endl;  
    }
    return 1;
}