这是一个非常简单的问题,但我发现它很棘手.我想把char*它看作是一个std::string,例如:
char *p = ...; // read a huge chuck from a file
std::string s(p); // this is not what I want
Run Code Online (Sandbox Code Playgroud)
所以,如果我使用构造函数,我得到一个p的副本,这是浪费内存和时间.有可能以某种方式避免这种情况,并将内容" 分配 " std::string到预先存在的地址吗?
任何其他想法都非常受欢迎!
谢谢!
请考虑以下代码.
DoSomething1()在1000次连续执行中比DoSomething2()更快吗?我会假设,如果我在哪里调用DoSomething1()它1000次,它会比调用DoSomething2()1000倍更快.
使我的所有大缓冲区都静止有什么不利吗?
#define MAX_BUFFER_LENGTH 1024*5
void DoSomething1()
{
static char buf[MAX_BUFFER_LENGTH] ;
memset( buf, 0, MAX_BUFFER_LENGTH );
}
void DoSomething2()
{
char buf[MAX_BUFFER_LENGTH] ;
memset( buf, 0, MAX_BUFFER_LENGTH );
}
Run Code Online (Sandbox Code Playgroud)
感谢您的时间.