c ++ string类型颠倒
时间: 2023-11-02 10:07:42 浏览: 75
可以使用C++中的reverse函数来颠倒string类型的字符串。具体实现如下:
```c++
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string str = "hello world";
reverse(str.begin(), str.end());
cout << str << endl;
return 0;
}
```
输出结果为:dlrow olleh
相关问题
string倒置字符串c++
要倒置一个字符串,你可以使用C++的标准库函数reverse()。这个函数可以将字符串的字符顺序颠倒过来。你可以先将字符串转化为string类型,然后使用reverse()函数将其倒置。下面是一个示例代码:
```c++
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main() {
string s = "c"; // 输入字符串
reverse(s.begin(), s.end()); // 倒置字符串
cout << "倒置后的字符串是:" << s << endl;
return 0;
}
```
这段代码首先声明了一个字符串变量s,并初始化为"c"。然后使用reverse()函数将字符串s倒置。最后打印出倒置后的字符串。
希望这能帮到你。
指出该类的错误并改正 :class TraceHolder { public: TraceHolder() = delete; static void Register(const std::string& task_name) { auto &map = GetMap(); auto it = map.find(task_name); if (it == map.end()) { std::unique_ptr<StopWatch> ticker = std::make_unique<StopWatch>(); map[task_name] = std::move(ticker); return; } auto ticker = it->second; ticker->reset(); return; } static bool Tick(const std::string &task_name) { auto &map = GetMap(); auto it = map.find(task_name); if (it == map.end()) return false; auto ticker = it->second; ticker->getTime(); double val = ticker->getTime(); TLOGI("%s took %lf ms.", task_name.c_str(), val); return true; } static std::map<std::string, std::unique_ptr<StopWatch>()> &GetMap() { static std::map<std::string, std::unique_ptr<StopWatch>()> map; return map; } };
错误:
1. 在定义静态成员函数 GetMap() 时,应该返回一个引用类型的 map,但是现在返回的是一个指向 map 的 unique_ptr。
2. 在 Tick() 函数中,应该先调用 getTime() 函数获取计时器的时间,再输出日志,但是现在的代码中打印日志和获取时间的顺序颠倒了。
改正后的代码如下:
```
class TraceHolder {
public:
TraceHolder() = delete;
static void Register(const std::string& task_name) {
auto& map = GetMap();
auto it = map.find(task_name);
if (it == map.end()) {
std::unique_ptr<StopWatch> ticker = std::make_unique<StopWatch>();
map[task_name] = std::move(ticker);
return;
}
auto& ticker = it->second;
ticker->reset();
return;
}
static bool Tick(const std::string& task_name) {
auto& map = GetMap();
auto it = map.find(task_name);
if (it == map.end()) return false;
auto& ticker = it->second;
double val = ticker->getTime();
TLOGI("%s took %lf ms.", task_name.c_str(), val);
return true;
}
static std::map<std::string, std::unique_ptr<StopWatch>>& GetMap() {
static std::map<std::string, std::unique_ptr<StopWatch>> map;
return map;
}
};
```
阅读全文