C++作业day1

思维导图

有以下定义,说明哪些量可以改变哪些不可以改变?

const char *p;                              

p指向的指向不能修改

const (char *) p;     

     

char *const p;     

p不能改                        

const char* const p;

都不能修改                     

char const *p; 

p的指向不能修改                            

(char *) const p;     

                 

char const* const p;

都不能修改                    
 

总结命名空间使用时的方式和注意事项

定义:
namespace 命名空间名

{

        变量/函数

}

使用:域限定符(::)

全局访问:nsing namespace 命名空间名

全局访问部分:using 命名空间名::标识符名

注意:

1.不同时引入两个全局命名空间(易发生冲突)

2.在命名空间和标识符冲突时,使用域限定符,来标识使用哪一个命名空间

3.全局变量和命名空间中内容冲突时,全局变量使用(:: 变量名)引用,因为全局变量默认为匿名空间的变量(定义命名空间没有写名字的为匿名空间)

4.局部变量和命名空间中内容冲突时,默认为局部变量,如果要使用命名空间中的内容时用

(命名空间名::变量名)

5.在命名空间内只写函数的声明,在命名空间外写函数的定义时,(命名空间名 ::函数)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作业车间调度问题是一个经典的组合优化问题,主要是解决在多个作业需要在多个机器上进行处理时,如何安排作业的顺序和分配机器的问题,以最小化完成所有作业的时间。 在C++中,可以使用贪心算法、动态规划等算法来解决作业车间调度问题。以下是一个使用贪心算法的C++示例代码: ```cpp #include <iostream> #include <algorithm> using namespace std; // 定义作业结构体 struct Job { int id; // 作业编号 int machine; // 机器编号 int time; // 作业处理时间 }; // 按照作业处理时间从小到大排序 bool cmp(Job a, Job b) { return a.time < b.time; } // 计算作业完成时间 int calcFinishTime(Job jobs[], int n) { int finishTime[n]; int maxTime = 0; for (int i = 0; i < n; i++) { int machine = jobs[i].machine; int time = jobs[i].time; if (i == 0) { finishTime[i] = time; } else { finishTime[i] = finishTime[i-1] + time; } maxTime = max(maxTime, finishTime[i]); } return maxTime; } // 贪心算法解决作业车间调度问题 int scheduleJobs(Job jobs[], int n, int m) { sort(jobs, jobs+n, cmp); // 按照作业处理时间排序 int machineTime[m] = {0}; // 记录每个机器的可用时间 for (int i = 0; i < n; i++) { int machine = jobs[i].machine; int time = jobs[i].time; jobs[i].id = i + 1; // 给作业编号 machineTime[machine] += time; // 更新机器可用时间 } sort(jobs, jobs+n, cmp); // 按照作业处理时间排序 return calcFinishTime(jobs, n); // 计算作业完成时间 } int main() { int n = 5; // 作业数量 int m = 3; // 机器数量 Job jobs[] = {{0, 0, 2}, {0, 1, 4}, {0, 2, 3}, {0, 1, 1}, {0, 2, 4}}; // 作业列表 int finishTime = scheduleJobs(jobs, n, m); // 计算作业完成时间 cout << "最短完成时间:" << finishTime << endl; return 0; } ``` 该示例代码中,先按照作业处理时间从小到大排序,然后根据贪心算法,将作业分配到可用时间最短的机器上处理。最后计算所有作业完成时间,输出最短完成时间。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值