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;
}