当前位置: 首页 > 知识库问答 >
问题:

将向量数组转换为数字

汤飞
2023-03-14

我在C++中创建了一个将数字转换为数组的函数。由于这一创建,我还创建了将数组转换回数字的相反部分:

int convertToNumber(vector<int> nums) {

    int length{ nums.size() };
    int Pow{ length - 1 };
    int factor{ pow(10, Pow) };
    int tempNum{};
    int result_num{};

    for (auto n : nums) {

        tempNum = n;
        tempNum *= factor;
        result_num += tempNum;
        Pow--;

    }

    return result_num;
}

问题就在这里。当我在main中使用以下代码运行时:

int main() {

  vector<int> nums {2, 3, 5, 6, 2, 6};

  int number = convertToNumber(nums);

  cout << number << endl;

}

我得到了240000,而我应该得到235626。我找了很久都找不到代码中的逻辑错误。有人知道怎么回事吗?

共有1个答案

皇甫敏达
2023-03-14

在循环的每次迭代中,您都在更新pow-但不更新factor;循环中使用的是factor,而不是pow

请记住,当您将表达式赋给变量时,该表达式只求一次值,而这一次求值的结果就是变量所设置的值。换句话说,每次使用factor时,不会调用pow()函数;它只调用一次,初始值为pow

注意您提供的代码将无法编译。必须在诸如vectorpow等标识符之前指定名称空间-否则编译器将无法理解它们;并且还需要包含适当的头。

如果碰巧在程序的某个地方隐藏了一个使用名称空间std的-那么,不要使用它:

为什么“使用命名空间std;”被认为是不好的做法?

 类似资料:
  • 问题内容: 将Object数组转换为Vector的最佳方法是什么? JDE <1.5 this.elements是一个Object [] 谢谢,雷特 我应该澄清我的问题 我的目标平台是黑莓。 不支持收藏。Array.asList()也不是:// 全班 问题答案: 现在,好像您要复制两次数据,但实际上并非如此。您确实得到了一个小的临时对象(来自的),但这提供了阵列的视图。而不是复制它,读和写操作将遍

  • 注意温度场是一个浮动列表。我希望将这些浮点数列表转换为MLlib类型,并且希望这种转换使用基本的API来表示,而不是通过RDDs(这是低效的,因为它将所有数据从JVM发送到Python,处理是在Python中完成的,我们没有得到Spark的Catalyst优化器yada yada的好处)。我该怎么做?具体来说: 有没有办法让直铸件工作?请参见下面的详细信息(以及一次失败的变通尝试)?或者,是否有其

  • 有没有办法将数据帧转换为向量?例如 预期产出

  • 问题内容: 顾名思义,将字符串数组转换为向量的最佳方法是什么? 谢谢 问题答案: 调用Vector的构造函数,该构造函数使用现有集合(在本例中为数组)初始化自身:

  • 问题内容: 我正在尝试将Java中的Javascript数组转换为Java数组。我正在使用javax.script包。我在这里测试了此示例,但是无法识别类型“ NativeArray” 我如何才能识别NativeArray类型? 问题答案: 按照这个答案,看来最好的选择是编写一个JavaScript转换器函数,该函数使用Rhino的Java绑定功能将本机JavaScript数组转换为Java数组。

  • 问题内容: 我有一个想要转换为纯JavaScript数组的json数组: 这是我的json数组: 如何将其转换为普通的javascript数组,如下所示: 问题答案: 已经是JS对象(不是JSON)。但是,您可以在这里: 编辑:将 元素插入数组中的正确位置。谢谢@RoToRa 也许一开始不创建此类对象会更容易。它是如何创建的?