c**********e 发帖数: 2007 | 1 我写的下面的程序是不是很不efficient?
#include
#include
#include
using namespace std;
int main(){
string input = string("reverse_this_string");
int n=input.size();
const char* c_str=new char[n+1];
c_str=input.c_str();
char* c_str2=new char[n+1];
for(int i=0;i
cout << string(c_str2) << endl;
return 0;
} |
t*****j 发帖数: 1105 | 2 char c_str[] = "Reverse_this_String";
char* p1, char* p2;
p1 = p2 = c_str;
while (*p2 != ‘\0’)
{
p2++;
}
p2--;
char c;
while (p1
{
c = *p1;
*p1 = *p2;
*p2 = c;
p1++;
p2--;
}
【在 c**********e 的大作中提到】 : 我写的下面的程序是不是很不efficient? : #include : #include : #include : using namespace std; : int main(){ : string input = string("reverse_this_string"); : int n=input.size(); : const char* c_str=new char[n+1]; : c_str=input.c_str();
|
t*****j 发帖数: 1105 | 3 char c_str[] = "Reverse_this_String";
char* p1, char* p2;
p1 = p2 = c_str;
while (*p2 != ‘\0’)
{
p2++;
}
p2--;
char c;
while (p1
{
c = *p1;
*p1 = *p2;
*p2 = c;
p1++;
p2--;
}
【在 c**********e 的大作中提到】 : 我写的下面的程序是不是很不efficient? : #include : #include : #include : using namespace std; : int main(){ : string input = string("reverse_this_string"); : int n=input.size(); : const char* c_str=new char[n+1]; : c_str=input.c_str();
|
c**********e 发帖数: 2007 | 4 谢谢。你儿子很可爱。
【在 t*****j 的大作中提到】 : char c_str[] = "Reverse_this_String"; : char* p1, char* p2; : p1 = p2 = c_str; : while (*p2 != ‘\0’) : { : p2++; : } : p2--; : char c; : while (p1
|
t*****j 发帖数: 1105 | 5 嘿嘿,我最爱听这句话了~~
谢谢。你儿子很可爱。
【在 c**********e 的大作中提到】 : 谢谢。你儿子很可爱。
|
m*****n 发帖数: 2152 | 6 #include
#include
using namespace std;
int main(){
string input("reverse_this_string");
string::iterator it_first = input.begin();
string::iterator it_last = input.end()-1;
while(it_first < it_last)
swap(*it_first++, *it_last--);
return 0;
}
【在 c**********e 的大作中提到】 : 我写的下面的程序是不是很不efficient? : #include : #include : #include : using namespace std; : int main(){ : string input = string("reverse_this_string"); : int n=input.size(); : const char* c_str=new char[n+1]; : c_str=input.c_str();
|
c**********e 发帖数: 2007 | 7 Your solution looks nice, but I got the following error:
Error: Could not find a match for std::swap
Allocator>(char, char) needed.
Any solution?
【在 m*****n 的大作中提到】 : #include : #include : using namespace std; : int main(){ : string input("reverse_this_string"); : string::iterator it_first = input.begin(); : string::iterator it_last = input.end()-1; : while(it_first < it_last) : swap(*it_first++, *it_last--); : return 0;
|
M********5 发帖数: 715 | 8 这个idea其实也没什么难的,只是接口看起来很简单了,因为stl帮它实现了功能
这个错误其实你应该看得懂的,如果你了解c++的高级特性的话
这个提到了两个知识点,一个是traits,一个Allocator
你可以试试swap
具体的语法不记得了,查一查stl的手册就清楚了
std::
【在 c**********e 的大作中提到】 : Your solution looks nice, but I got the following error: : Error: Could not find a match for std::swap: Allocator>(char, char) needed. : Any solution?
|
p********7 发帖数: 549 | |