buf表示指向具体的内存。当capacity 为4,size为3时,这时再放一个char,还够容量放。之后capacity和si...
这个数字应该和size()返回的数字相同.capacity()函数返回在重新申请更多的空间前字符串可以容纳的字符数.就是string当前能够容纳的最大字符数;即capacity()>=length().
size()函数返回的是已用空间大小,capacity()返回的是总空间大小,capacity()-size()则是剩余的可用空间大小。当size()和capacity()相等,说明vector目前的空间已被用完,如果再添加新元素,则会引起vector空间的动态增长。由于动态增长会引起重新分配内存空间、拷贝原空间、释放原空间,这些过程会降低程序效率。因此,可以使...
size():返回容器中的元素数。 capacity():返回当前存储空间能够容纳的元素数。 clear():清除内容。 .insert():插入元素。 erase():擦除元素。 .push_back():将元素添加到容器末尾。 .pop_back():移除末尾元素。 *max_element(v.begin(), v.end()):返回数组最大值。 *min_element(v.begin(), v.end...
*p = (char*)calloc(capacity,sizeof(char)); }else{if(index >= capacity ) { capacity += (capacity>>1);printf("新容量:%d \n", capacity);char*p2 = (char*)realloc(*p, capacity);//free(*p);*p = p2; } } *(*p+index) = c; ...
(1)capacity:该值在容器初始化时赋值,指的是容器能够容纳的最大的元素的个数。还不能通过下标等访问,因为此时容器中还没有创建任何对象。(2)size:指的是此时容器中实际的元素个数。可以通过下标访问0-(size-1)范围内的对象。 resize和reserve区别主要有以下几点:(1)resize既分配了空间,也创建了对象;reserve...
1.操作之前先使用assert检查一下ps是否为空指针. 2.判断size与capacity的关系,当顺序表的元素个数一旦等于顺序表的容量时,就使用realloc()函数进行扩容.(一般来说,我们每次扩容的容量是扩容前的2倍时比较合理.) 3.使用realloc()函数和malloc()函数一样,当遇到未开辟成功的情况时需要抛出错误信息. 4.最后记得扩容...
max_size() 取得当前内存分配器能分配的有效空间 reserve() 为缓冲区预留空间 capacity() 取得缓冲区的容量 resize() 重设串的长度,可以为其指定初始化值 十、定义输入迭代器的尾端 向istream_iterator 传递输入流对象以创建输入迭代器,输入迭代器持有输入流对象的指针,默认创建和读取流失败的情况下该指针被设置为...
1//栈的定义2格式:stack<数据类型>名称;3stack<int>sta;45//栈的操作6sta.empty() 如果栈为空,则返回true,否则返回stack7sta.size() 返回栈中元素的个数8sta.pop() 删除栈顶元素的值,但不返回其值9sta.top() 返回栈顶元素的值,但不删除该元素10sta.push(item) 在栈顶压入新元素1112//队列的定义13...
size():返回容器中的元素数。 capacity():返回当前存储空间能够容纳的元素数。 clear():清除内容。 insert():插入元素。 erase():擦除元素。 push_back():将元素添加到容器末尾。 pop_back():移除末尾元素。 *max_element(v.begin(), v.end()):返回数组最大值。 *min_element(v.begin(), v.end()...