capacity(); //重新分配内存之前,string对象能包含的最大字符数 感觉挺简单的所以我就直接放出了。 测试: #include <iostream> #include <string> using namespace std; int main() { string s = "123456"; cout << s << endl; cout << s.size() << endl <
sizeof(s) 与 s.capacity() 没有直接联系吧。sizeof(s)是s这个std::string对象本身的大小,根据实现不同,可能有如下几个成员变量:两个整数分别表示可使用与已使用的空间大小,一个指针指向内存块,字符数组(作为栈中的缓存,Short String Optimation,当字符串较短时,可能就直接放在栈中了,这也是你上面那个程序在...
Constructors构造函数,用于字符串初始化Operators操作符,用于字符串比较和赋值append()在字符串的末尾添加文本assign()为字符串赋新值at()按给定索引值返回字符begin()返回一个迭代器,指向第一个字符c_str()将字符串以C字符数组的形式返回capacity()返回重新分配空间前的字符容量compare()比较两个字符串copy()将内容...
string s;1) s.empty();// s为空串 返回true2) s.size();// 返回s中字符个数 类型应为:string::size_type3) s[n];// 从0开始相当于下标访问4) s1+s2;// 把s1和s2连接成新串 返回新串5) s1=s2;// 把s1替换为s2的副本6) v1==v2;// 比较,相等返回true7) `!=, <, <=, >, >=...
string 是 c++的,不是 c 的 stirng 是C++里面一个用来处理字符串的类。包含了字符串处理掉一下常用方法,如:Constructors 构造函数,用于字符串初始化 Operators 操作符,用于字符串比较和赋值 append() 在字符串的末尾添加文本 assign() 为字符串赋新值 at() 按给定索引值返回字符 begin() 返回...
我们一般情况下不用关心他,应该大小足够我们用的。但是不够用的话,会抛出length_error异常c)capacity()重新分配内存之前 string所能包含的最大字符数。这里另一个需要指出的是reserve()函数,这个函数为string重新分配内存。重新分配的大小由其参数决定, 默认参数为0,这时候会对string进行非强制性缩减。
int capacity()const; //返回当前容量(即string中不必增加内存即可存放的元素个数) int max_size()const; //返回string对象中可存放的最大字符串的长度 int size()const; //返回当前字符串的大小 int length()const; //返回当前字符串的长度 bool empty()const; //当前字符串是否为空 ...
#include <iostream>#include <string>voidshow_capacity(std::stringconst&s){std::cout<<"'"<<s<<"' has capacity "<<s.capacity()<<".\n";}intmain(){std::strings{"Exemplar"};show_capacity(s);s+=" is an example string.";show_capacity(s);} ...
(不同于capacity)size_typemax_size()const;basic_string<char>:size_typecap,max;cap=s.capacity();max=s.max_size();/max=4294967294.basic_string:rfind寻找给定的string。返回找到的第一个string下标值;如果没找到则返回npos。与find不同的是:rfind默认从npos开始找。其他相同。basic_string:replace将原...
这样的话我们的动态版本不够的话每次需要增加两个人的信息所以就不能是数组形式了不然会出现问题malloc开辟的空间的起始地址交给一个指针维护;因为i要扩容我们要定义一个变量(capacity)来记录容量,还有定义一个变量(sz)来记录通讯录中的有效信息 typedef struct PeoInfo{char name[MAX_NAME];int age;char sex[MAX...