当前位置:  开发笔记 > 编程语言 > 正文

将数字列表传递给C++中的函数而不先构建数组?

如何解决《将数字列表传递给C++中的函数而不先构建数组?》经验,为你挑选了1个好方法。

我正在尝试构建一个以下列方式接受数组的函数:

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

int findCommon(int nums[], int len){
  for(int i=0; i

注意,这实际上并不是我的函数所做的,但我会循环遍历数组.我只是想确定是否可以传递像{54,56,2,10}这样的数组,而不是必须创建一个数组并传递它?(像这样:

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

Luc Touraill.. 5

这在当时是不可能的.但是,在下一个C++标准C++ 0x中,这将使用initalizer列表完成:

int findCommon(std::initializer_list nums)
{
    std::initializer_list::iterator it;
    for (it = nums.begin() ; it != nums.end() ; ++it)
    {
        std::cout << *it << std::endl;  
    }
    return 1;
}

请参阅Bjarne Stroustrup的演示文稿和维基百科的这篇文章

如果你想尝试C++ 0x功能,你可以检查支持其中一些的gcc的最新版本.



1> Luc Touraill..:

这在当时是不可能的.但是,在下一个C++标准C++ 0x中,这将使用initalizer列表完成:

int findCommon(std::initializer_list nums)
{
    std::initializer_list::iterator it;
    for (it = nums.begin() ; it != nums.end() ; ++it)
    {
        std::cout << *it << std::endl;  
    }
    return 1;
}

请参阅Bjarne Stroustrup的演示文稿和维基百科的这篇文章

如果你想尝试C++ 0x功能,你可以检查支持其中一些的gcc的最新版本.

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有