C++的区别
约 642 字大约 2 分钟
2026-08-03
C++语法区别
string的区别
C语言的string,如string A = "hello world"; , uint8_t *B = &A;
C++的std::string A,其中string是std的一个类
- 如果需要直接赋值,可以使用std::string A = "hello world";
- 如果有一个
vector<uint8_t>C;定义std::string A(C.begin()+i, C.end());这里用的是A的构造函数 - 如果有一个
vector<uint8_t>C;定义std::string A;A.assign(C.begin()+i, C.end());这里用A的assign函数 - 如果需要获取指针,可以使用uint8_t *B = A.data();也可以const char *B = A.c_str();
- 如果需使用指针,可以使用const char *B = A.c_str();
追加函数
- str.append(const string& str);
- str.append(const string& str, size_t pos, size_t len);
- str.append(const char* s);
- str.append(const char* s, size_t n);
- str.append(size_t n, char c);
- str.append(InputIterator first, InputIterator last);
赋值函数
- str.assign(const string& str);
- str.assign(const string& str, size_t pos, size_t len);
- str.assign(const char* s);
- str.assign(const char* s, size_t n);
- str.assign(size_t n, char c);
- str.assign(InputIterator first, InputIterator last);
插入函数
- str.insert(size_t pos, const string& str);
- str.insert(size_t pos, const string& str, size_t subpos, size_t sublen);
- str.insert(size_t pos, const char* s);
- str.insert(size_t pos, const char* s, size_t n);
- str.insert(size_t pos, size_t n, char c);
- iterator insert(iterator p, char c);
- void insert(iterator p, size_t n, char c);
- void insert(iterator p, InputIterator first, InputIterator last);
删除函数
- str.erase(size_t pos = 0, size_t len = npos);
- iterator erase(iterator p);
- iterator erase(iterator first, iterator last);
替换函数
- str.replace(size_t pos, size_t len, const string& str);
- str.replace(iterator first, iterator last, const string& str);
- str.replace(size_t pos, size_t len, const char* s);
- str.replace(iterator first, iterator last, const char* s);
- str.replace(size_t pos, size_t len, size_t n, char c);
查找函数
- str.find(const string& str, size_t pos = 0);
- str.find(const char* s, size_t pos = 0);
- str.find(const char* s, size_t pos, size_t n);
- str.find(char c, size_t pos = 0);
比较函数
- str.compare(const string& str);
- str.compare(size_t pos, size_t len, const string& str);
- str.compare(const char* s);
截取函数
- str.substr(size_t pos = 0, size_t len = npos);
其他函数
- str.clear();
- str.size();
- str.length();
- str.capacity();
- str.reserve(size_t n);
- str.shrink_to_fit();
- str.empty();
std::vector
- std::vector本身的重载函数是.assign();即定义
std::vector<uint8_t>A;- str.assign("hello"); //直接定义为hello字符串,assign(const string& str)和assign(const char* s)
- str.assign(other_str, 2, 5); // 从位置2开始复制5个字符
- str.assign("hello world", 5); // 复制前5个字符
- str.assign(10, 'A'); // 10个'A'字符
- A.assign(B.begin()+i, B.end()); //A的取值是B+i开始到B结束
- str.assign({'H', 'e', 'l', 'l', 'o'}); //重载函数assign(
initializer_list<char>il)
- vector的插入内容函数是.(pos, value);也有其他的重载函数
- vector的单字符插入函数插入的元素,要使用.push_back(value);也有其他的重载函数
- vector的单字符删除函数删除的元素,要使用.pop_back();也有其他的重载函数
- vector的删除内容函数是.erase(begin+i, end);也有其他的重载函数
