(1)——C++:集合常用头文件

将常用的头文件集合在一个头文件中的意义是方便代码的编写和维护。通过集合,可以减少头文件的导入次数避免重复定义,提高代码的可读性和可维护性

集合常用头文件示例:

下面是一个示例,展示了如何将常用的头文件集合在一个头文件中:

#ifndef MYHEADER_H
#define MYHEADER_H

#include <iostream>
#include <vector>
#include <string>
#include <cmath>

#endif /* MYHEADER_H */

在这个头文件中,我们集合了四个常用的头文件:<iostream>、<vector>、<string> 和<cmath>。简单地包含这个头文件就可以使用这些头文件中的函数和类了。例如,我们可以这样使用这个头文件:

#include "myheader.h"

int main() {
    std::vector<int> vec;
    std::string str = "Hello World";
    std::cout << str << std::endl;
    std::cout << std::sqrt(16) << std::endl;
    return 0;
}

在这个例子中,我们使用了<vector>中的vector类、<string>中的string类、<iostream>中的cout对象、以及<cmath>中的sqrt函数,但是我们只需要包含一个头文件<myheader.h>就可以使用它们了。

万能头:

万能头文件指的是可以包含多个其他头文件的头文件,使得在程序中只需要包含一个头文件即可使用多个库函数和数据类型。下面是一个简单的例子,介绍如何制作一个用于数学计算的万能头文件MathTools.h。

1.

创建一个新的头文件MathTools.h,并在头文件中包含所需的其他头文件,例如:

#ifndef MATHTOOLS_H
#define MATHTOOLS_H

#include <cmath>
#include <vector>
#include <algorithm>

// 在这里添加其他需要包含的头文件

#endif // MATHTOOLS_H

2.

在头文件中定义需要使用的函数和数据类型,例如:

#ifndef MATHTOOLS_H
#define MATHTOOLS_H

#include <cmath>
#include <vector>
#include <algorithm>

namespace MathTools {

    const double PI = 3.14159265358979323846;

    double square(double x) {
        return x * x;
    }

    double distance(double x1, double y1, double x2, double y2) {
        return std::sqrt(square(x2 - x1) + square(y2 - y1));
    }

    std::vector<int> sort(std::vector<int> vec) {
        std::sort(vec.begin(), vec.end());
        return vec;
    }

    // 在这里添加其他需要定义的函数和数据类型

}

#endif // MATHTOOLS_H

3.

在主函数中包含该头文件即可使用MathTools命名空间下的所有函数和数据类型,例如:

#include "MathTools.h"
#include <iostream>

int main () {
    std::cout << MathTools::distance(0, 0, 3, 4) << std::endl;  // 输出5
    std::vector<int> vec = {3, 2, 1};
    vec = MathTools::sort(vec);
    for (auto n : vec) {
        std::cout << n << " ";  // 输出 1 2 3
    }
    std::cout << std::endl;
    return 0;
}

这样,就可以方便地使用MathTools命名空间下的函数和数据类型了。注意,为了避免重复包含,头文件通常会使用#ifndef和#define指令来防止重复定义。最后,要注意避免在头文件中定义全局变量和静态变量,避免在多个源文件中重复定义导致编译错误。

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值