1. <i id='CSB5V'><tr id='CSB5V'><dt id='CSB5V'><q id='CSB5V'><span id='CSB5V'><b id='CSB5V'><form id='CSB5V'><ins id='CSB5V'></ins><ul id='CSB5V'></ul><sub id='CSB5V'></sub></form><legend id='CSB5V'></legend><bdo id='CSB5V'><pre id='CSB5V'><center id='CSB5V'></center></pre></bdo></b><th id='CSB5V'></th></span></q></dt></tr></i><div id='CSB5V'><tfoot id='CSB5V'></tfoot><dl id='CSB5V'><fieldset id='CSB5V'></fieldset></dl></div>

    2. <small id='CSB5V'></small><noframes id='CSB5V'>

      <tfoot id='CSB5V'></tfoot>
      <legend id='CSB5V'><style id='CSB5V'><dir id='CSB5V'><q id='CSB5V'></q></dir></style></legend>

        <bdo id='CSB5V'></bdo><ul id='CSB5V'></ul>
    3. 作为函数参数传递的数组的大小

      时间:2023-08-03

        <bdo id='BYblK'></bdo><ul id='BYblK'></ul>
            <i id='BYblK'><tr id='BYblK'><dt id='BYblK'><q id='BYblK'><span id='BYblK'><b id='BYblK'><form id='BYblK'><ins id='BYblK'></ins><ul id='BYblK'></ul><sub id='BYblK'></sub></form><legend id='BYblK'></legend><bdo id='BYblK'><pre id='BYblK'><center id='BYblK'></center></pre></bdo></b><th id='BYblK'></th></span></q></dt></tr></i><div id='BYblK'><tfoot id='BYblK'></tfoot><dl id='BYblK'><fieldset id='BYblK'></fieldset></dl></div>
            <legend id='BYblK'><style id='BYblK'><dir id='BYblK'><q id='BYblK'></q></dir></style></legend>

            <small id='BYblK'></small><noframes id='BYblK'>

                <tfoot id='BYblK'></tfoot>
                  <tbody id='BYblK'></tbody>
                本文介绍了作为函数参数传递的数组的大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                问题描述

                可能的重复:
                函数参数中数组的长度

                我正在做作业,我完全被难住了.我们假设列表的每个顺序都是一个整数数组,所以我根据老师的伪代码编写了这段代码:

                Hi am doing homework and I am completly stumped. We were suppose to get every order of a list an array of integers so I wrote this piece of code, based off of my teacher's pseudocode:

                void permute(int v[], int curr,char letters[])
                {
                    if(curr >= sizeof(v)/sizeof(int))
                    {
                        checkit(v,letters);
                    }
                    for(int i = curr; i < sizeof(v)/sizeof(int); i++)
                    {
                        swap(i,curr,v);
                        permute(v,curr + 1,letters);
                        swap(v[curr],v[i]);
                    }//for
                }//permu
                

                我唯一不确定的是 sizeof(v)/sizeof(int) 是否正确.

                The only thing I am not sure of is if sizeof(v)/sizeof(int) is the right way to go.

                推荐答案

                sizeof(v)/sizeof(int) 不是要走的路.您的函数完全等同于:

                sizeof(v)/sizeof(int) is not the way to go. Your function is exactly equivalent to:

                void permute(int *v, int curr, char *letters)
                {
                    ...
                }
                

                v 不是真正的数组,它是一个指针.你不能在 C 或 C++ 中传递数组.

                i.e. v is not really an array, it's a pointer. You cannot pass arrays in C or C++.

                解决方案是以下之一(并非详尽无遗):

                The solution is one of the following (not exhaustive):

                • 添加一个额外的参数来明确描述数组的长度
                • 添加一个指向数组最后一个元素的额外参数
                • 使用合适的容器(例如 std::vector),您可以在其上调用 size()
                • @sehe 建议的模板解决方案
                • add an extra argument that explicitly describes the length of the array
                • add an extra argument that points at the last element of the array
                • use a proper container (e.g. std::vector), which you can call size() on
                • the template solution that @sehe suggests

                这篇关于作为函数参数传递的数组的大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                上一篇:编写一个递归函数来反转输入字符串 下一篇:如何编写可变参数模板递归函数?

                相关文章

                最新文章

              1. <tfoot id='KEb4T'></tfoot>

                    <i id='KEb4T'><tr id='KEb4T'><dt id='KEb4T'><q id='KEb4T'><span id='KEb4T'><b id='KEb4T'><form id='KEb4T'><ins id='KEb4T'></ins><ul id='KEb4T'></ul><sub id='KEb4T'></sub></form><legend id='KEb4T'></legend><bdo id='KEb4T'><pre id='KEb4T'><center id='KEb4T'></center></pre></bdo></b><th id='KEb4T'></th></span></q></dt></tr></i><div id='KEb4T'><tfoot id='KEb4T'></tfoot><dl id='KEb4T'><fieldset id='KEb4T'></fieldset></dl></div>
                    <legend id='KEb4T'><style id='KEb4T'><dir id='KEb4T'><q id='KEb4T'></q></dir></style></legend>

                    • <bdo id='KEb4T'></bdo><ul id='KEb4T'></ul>
                  1. <small id='KEb4T'></small><noframes id='KEb4T'>