zoukankan      html  css  js  c++  java
  • C++ 全局变量不明确与 using namespace std 冲突

    写了个汉诺塔,使用全局变量count来记录步数,结果Error:count不明确

    #include <iostream>
    using namespace std;
    int count = 0;
    
    void hanoi(int num, char source, char through, char target){
        if (num == 0) return;
        hanoi(num - 1, source, target, through);
        printf("%d from %c to %c
    ", num, source, target);
        count++;
        hanoi(num - 1, through, source, target);
    }

    后来才知道 std命名空间里有std::count,所以与全局变量count冲突

    std::count

    template <class InputIterator, class T>
    typename iterator_traits<InputIterator>::difference_type
    ​        count(InputIterator first, InputIterator last, const T& val);
    

    所以修改方法有以下几种:

    1.全局变量count改为cnt(或其他名称)

    2.使用count的地方改为::count

    #include <iostream>
    using namespace std;
    int count = 0;
    
    void hanoi(int num, char source, char through, char target){
        if (num == 0) return;
        hanoi(num - 1, source, target, through);
        printf("%d from %c to %c
    ", num, source, target);
        ::count++;
        hanoi(num - 1, through, source, target);
    }

    3.不要使用using namespace std,使用using namespace std是不好的习惯

  • 相关阅读:
    CSS div 塌陷问题
    jquery 选择器包含特殊字符
    ASP.NET Core Action 读取流
    SQL 列拼接使用
    bootstrap div 固定
    Jquery 操作HTML5自定义属性data-*
    Vue 页面加载闪现代码问题
    iframe 加载完成事件
    closest
    【开发者的精进】 数据驱动下的程序设计
  • 原文地址:https://www.cnblogs.com/dj0325/p/8491649.html
Copyright © 2011-2022 走看看