@[fruian](/user/1102460) 我试了,不是你给出代码的错,换了头文件也能过编。求发全代码
by pyy1 @ 2024-03-07 15:11:20
@[fruian](/user/1102460) 有些版本的编译器 `string` 类在 `<iostream>` 里面是没有定义的,需要 `#include <string>`
by iterator_traits @ 2024-03-07 15:21:02
@[pyy1](/user/581316)
```cpp
#include <iostream>
#include <string.h>
#include <map>
using namespace std;
map<char, int> m1 = {
{'0',0},
{'1',1},
{'2',2},
{'3',3},
{'4',4},
{'5',5},
{'6',6},
{'7',7},
{'8',8},
{'9',9},
{'A',10},
{'B',11},
{'C',12},
{'D',13},
{'E',14},
{'F',15},
};
map<int, char> m2 = {
{0,'0'},
{1,'1'},
{2,'2'},
{3,'3'},
{4,'4'},
{5,'5'},
{6,'6'},
{7,'7'},
{8,'8'},
{9,'9'},
{10,'A'},
{11,'B'},
{12,'C'},
{13,'D'},
{14,'E'},
{15,'F'},
};
int main() {
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int jz_1, jz_2;
string num_str;
cin >> jz_1 >> num_str >> jz_2;
int num = 0;
for (int i = 0; i < num_str.length(); i++) {
num *= jz_1;
num += m1[num_str[i]];
}
string num_reverse;
while (num != 0) {
int yu = num % jz_2;
num_reverse += m2[yu];
num /= jz_2;
}
reverse(num_reverse.begin(), num_reverse.end());
cout << num_reverse;
return 0;
}
```
这个是没通过的版本
by fruian @ 2024-03-07 15:24:35
@[iterator_traits](/user/72922)
大佬,头文件 string string.h 还有cstring有什么区别
by wuwendi123 @ 2024-03-07 15:24:59
@[iterator_traits](/user/72922)
大佬,导入#include <string>也过不了
QAQ
by fruian @ 2024-03-07 15:27:18
万能头怎么你了
by Vsinger_洛天依 @ 2024-03-07 15:30:36
我知道问题出在哪了,reverse是标准算法库的算法,要导入<algorithm>库.
此贴结
by fruian @ 2024-03-07 15:31:27
@[wuwendi123](/user/784606) `<string.h>` 是C的头文件,在C++中应该可以用 `<cstring>` 代替(应该?)
`<string>` 里面主要内容是 `string` 类,和另外两个是不一样的
by iterator_traits @ 2024-03-07 16:19:59