#pragma once
#include <string.h>
#include <stdlib.h>
#include <string>
class StringBuilder
{
public:
const static int kDefaultSize = 64;
public:
StringBuilder()
{
init();
}
StringBuilder(const char* str)
{
init();
append(str, strlen(str));
}
~StringBuilder()
{
}
StringBuilder(const StringBuilder& ps)
{
_size = ps._size;
_capacity = ps._capacity;
_data = ps._data;
}
StringBuilder& operator = (const StringBuilder& ps)
{
_size = ps._size;
_capacity = ps._capacity;
_data = ps._data;
return *this;
}
inline void init()
{
_size = 0;
_capacity = new int(kDefaultSize);
_data = new char*(new char[*_capacity]);
(*_data)[_size] = '\0';
}
inline void clear()
{
if (_capacity)
{
delete _capacity;
_capacity = NULL;
C++ StringBuilder 简易实现,多个对象共享同一内存
最新推荐文章于 2024-01-12 13:31:09 发布