std::cout<<n<<std::end1
时间: 2023-05-22 20:03:06 浏览: 127
非常抱歉,这不是一个合法的 C++ 语句。应该使用 std::endl 而不是 std::end1。正确的语句应该是:
std::cout << n << std::endl;
这将在控制台上输出变量 n 的值,并换行。
相关问题
std::cout << "输入起点城市:" << endl; cin >> start; std::cout << "输入终点城市:" << endl; cin >> end; for (int i = 0; i < graph.vexnum; i++) { if (cities[i].city == start) s = i; if (cities[i].city == end) e = i; } //最短路径 system("cls"); std::cout << "读取完成" << endl; std::cout << "请选择最短路径要求" << endl; std::cout << "时间:1 " << endl; std::cout << "价格:2 " << endl; cin >> p; system("cls"); switch (p) { case 1: std::cout << "以时间为基准:" << endl; TimeShortPath(graph, s, way, D); for (int i = 0; i < 199; ++i) { if (way[e][i] == n) { c[n - 1] = i; std::cout << cities[i].city << ' '; n++; i = -1; } } std::cout << std::endl; std::cout << "时间:" << D[e] << " h "; TxtWriting(graph, c, n); break; case 2: std::cout << "以价格为基准:" << endl; CostShortPath(graph, s, way, D); for (int i = 0; i < 199; ++i) { if (way[e][i] == n) { c[n - 1] = i; std::cout << cities[i].city << ' '; n++; i = -1; } } std::cout << std::endl; std::cout << "价格:$" << D[e]; TxtWriting(graph, c, n); break; } return 0; } //构造控制台
这段代码是控制台程序的核心部分,主要包括以下内容:
1. 通过 std::cout 输出提示信息,让用户输入起点城市和终点城市。
2. 通过循环遍历 cities 数组,找到起点城市和终点城市在数组中的下标。
3. 通过 switch 语句让用户选择最短路径的要求,即以时间为基准还是以价格为基准。
4. 根据用户的选择调用 TimeShortPath 函数或 CostShortPath 函数计算最短路径,并将结果存储在 way 和 D 变量中。
5. 通过循环遍历 way 数组,找到从起点城市到终点城市的最短路径,并将路径上经过的城市存储在 c 数组中。
6. 输出最短路径,包括经过的城市和路径总时间或总价格。
7. 调用 TxtWriting 函数将结果写入文件。
8. 返回 0 表示程序正常结束。
std::chrono::time_pointstd::chrono::steady_clock end = std::chrono::steady_clock::now(); std::chrono::seconds elapsed = std::chrono::duration_cast<std::chrono::seconds>(end - start); int64_t s = elapsed.count(); std::cout << "Elapsed time: " << elapsed.count() << " s" << std::endl; std::cout << "Elapsed time s: " << s << " s" << std::endl; 存在什么问题
这段代码没有明显的问题,但是在输出`elapsed`变量的值时,使用了两种不同的方式:
1. `elapsed.count()`,直接获取`elapsed`变量的秒数,并将其转换为`int64_t`类型。
2. `s`,将`elapsed`变量的秒数存储在了一个`int64_t`类型的变量`s`中,并输出`s`的值。
这两种方式的结果应该是相同的,因为`elapsed.count()`返回的是一个`std::chrono::seconds::rep`类型的值,也就是`int64_t`类型。因此,如果想要输出`elapsed`变量的值,可以直接使用`elapsed.count()`,不需要再将其存储在一个额外的变量中。例如:
```
std::chrono::time_point<std::chrono::steady_clock> end = std::chrono::steady_clock::now();
std::chrono::seconds elapsed = std::chrono::duration_cast<std::chrono::seconds>(end - start);
std::cout << "Elapsed time: " << elapsed.count() << " s" << std::endl;
```
这样可以避免产生额外的变量,并使代码更加简洁。
阅读全文