C++ --> string类模拟实现
以下是一个简化的C++ string
类模板的示例代码,用于演示基本的字符串操作。
#include <iostream>
#include <cstring>
template<typename CharT>
class basic_string {
public:
using value_type = CharT;
using size_type = size_t;
using reference = value_type&;
using const_reference = const value_type&;
basic_string() : data(nullptr), size_(0) {}
basic_string(const value_type* str) {
size_ = std::strlen(str);
data = new value_type[size_ + 1];
std::strcpy(data, str);
}
basic_string(const basic_string& other) : size_(other.size_) {
data = new value_type[size_ + 1];
std::strcpy(data, other.data);
}
basic_string& operator=(const basic_string& other) {
if (this != &other) {
delete[] data;
size_ = other.size_;
data = new value_type[size_ + 1];
std::strcpy(data, other.data);
}
return *this;
}
~basic_string() {
delete[] data;
}
size_type length() const {
return size_;
}
const value_type* c_str() const {
return data;
}
private:
value_type* data;
size_type size_;
};
int main() {
basic_string<char> my_string("Hello, World!");
std::cout << "Length: " << my_string.length() << ", Content: " << my_string.c_str() << std::endl;
return 0;
}
这个示例展示了如何创建一个简单的basic_string
类模板,它可以存储字符并提供基本的字符串操作,如获取长度和访问字符串内容。这个实现没有包括所有的字符串操作,例如插入、删除等,而是为了展示基本概念。
评论已关闭