vector容器assign(),capacity(),size(),swap(),get_allocator(),max_size(),reserve(),resize()
来源:互联网 发布:windows phone 10应用 编辑:程序博客网 时间:2024/05/16 05:47
assign() 对Vector中的元素赋值
void assign( input_iterator start, input_iterator end ); //
void assign( size_type num, const TYPE &val );
capacity() 返回vector所能容纳的元素数量(在不重新分配内存的情况下)
get_allocator() 返回vector的内存分配器
max_size() 返回Vector所能容纳元素数量的最大值(译注:包括可重新分配内存).
reserve() 设置Vector最小的元素容纳数量 函数为当前vector预留至少共容纳size个元素的空间.(译注:实际空间可能大于size)
resize() 改变Vector元素数量的大小 函数改变当前vector的大小为size,且对新创建的元素赋值val
size() 返回Vector元素数量的大小
swap() 交换两个Vector
#include <iostream>
#include <vector>
#include <algorithm>
void show_sequence(std::vector<int>::const_iterator first, std::vector<int>::const_iterator last)
{
std::cout<<"{";
std::copy(first, last, std::ostream_iterator<int>(std::cout, " "));
std::cout<<"}"<<std::endl;
}
void inspect_vector(const std::vector<int>& v)
{
std::cout<<" has "<<v.size()<<" elements: ";
show_sequence(v.begin(), v.end());
}
int main()
{
int v_size,v_capacity,a_size,a_capacity;
std::vector<int> v(10);
std::vector<int> a;
std::cout<<"vector v";
inspect_vector(v);
v_capacity = v.capacity(); //v的容量为10每个元素的值都为0
v_size = v.size(); //v的大小为10每个元素
std::cout<<"vector v 's capacity : "<<v_capacity<<std::endl;
std::cout<<"vector v 's size : "<<v_size<<std::endl<<std::endl;
std::cout<<"vector a";
inspect_vector(a);
a_capacity = a.capacity(); //a的容量为0
a_size = a.size(); //a的大小为0
std::cout<<"vector a 's capacity : "<<a_capacity<<std::endl;
std::cout<<"vector a 's size : "<<a_size<<std::endl<<std::endl;
for (int i=0; i<5; i++)//在v的末尾加5个数字分别为0,1,2,3,4
{
v.push_back(i);
}
a.assign(v.begin(),v.end());//将v中的值全部赋给 a 中的元素
std::cout<<"vector v";
inspect_vector(v);
v_capacity = v.capacity(); //v的容量为大等于20,元素的值为0,0,0,0,0,0,0,0,0,0,0,1,2,3,4
v_size = v.size(); //v的大小为15
std::cout<<"vector v 's capacity : "<<v_capacity<<std::endl;
std::cout<<"vector v 's size : "<<v_size<<std::endl<<std::endl;
std::cout<<"vector a";
inspect_vector(a);
a_capacity = a.capacity(); //a的容量为15,元素的值为0,0,0,0,0,0,0,0,0,0,0,1,2,3,4
a_size = a.size(); //a的大小为15
std::cout<<"vector a 's capacity : "<<a_capacity<<std::endl;
std::cout<<"vector a 's size : "<<a_size<<std::endl<<std::endl;
a.assign(5,99);//将a中前五维的元素赋值为99,a中原来的值将被清空
a_capacity = a.capacity(); //a的容量为15,元素值为99,99,99,99,99
a_size = a.size(); //a的大小为5
std::cout<<"vector a 's capacity : "<<a_capacity<<std::endl;
std::cout<<"vector a 's size : "<<a_size<<std::endl<<std::endl;
v.swap(a); // 交换两个容器里面的值
std::cout<<"vector v";
inspect_vector(v);
v_capacity = v.capacity(); //v的容量为大等于15,元素值为99,99,99,99,99
v_size = v.size(); //v的大小为5
std::cout<<"vector v 's capacity : "<<v_capacity<<std::endl;
std::cout<<"vector v 's size : "<<v_size<<std::endl<<std::endl;
std::cout<<"vector a";
inspect_vector(a);
a_capacity = a.capacity(); //a的容量为大等于20,元素的值为0,0,0,0,0,0,0,0,0,0,0,1,2,3,4
a_size = a.size(); //a的大小为15
std::cout<<"vector a 's capacity : "<<a_capacity<<std::endl;
std::cout<<"vector a 's size : "<<a_size<<std::endl<<std::endl;
return 0;
}
注:灰色部份为输出语句,红色部份为重点,蓝色部份为计算容器的容量和大小.
- vector容器assign(),capacity(),size(),swap(),get_allocator(),max_size(),reserve(),resize()
- 深入浅出vector之resize()/reserve(), size()/capacity()
- Vector的使用:resize、size、reserve、capacity
- 深入浅出vector之resize()/reserve(), size()/capacity()
- C++基础---string类的capacity/max_size/size/length/empty/reserve/resize
- vector中的 size和 capacity和 reserve和 resize
- C++的vector中的resize,reserve,size(),capacity()
- vector的reserve和resize以及capacity和size
- STL中vector的capacity、size、reserve、resize
- C++ vector中size/resize和capacity/reserve的区别
- C++容器中 size(), capacity, reserve() ,resize() 函数讲解
- C++容器中 size(), capacity, reserve() ,resize() 函数
- C++容器中 size(), capacity, reserve() ,resize() 函数讲解
- vector的size、capacity和max_size
- vector size()/resize() reverse()/capacity()
- C++学习笔记之——vector的size和capacity、resize和reserve的区别
- STL中容器的几个容易混淆的成员函数-size, capacity, resize, reserve
- STL中容器的几个容易混淆的成员函数-size, capacity, resize, reserve
- Ext 设计师预览
- 一点点
- [转]DIV+CSS在IE7/IE6/Firefox间的兼容性问题
- (NIO)有效解决了多线程服务器存在的线程开销
- 基于1553B总线的ARINC 661指令传输(一)--1553B的一些要点
- vector容器assign(),capacity(),size(),swap(),get_allocator(),max_size(),reserve(),resize()
- 程序员需要具备的基本技能
- 软件开发过程中的审查 (Review)
- 写给自己
- 没看完就流泪的离婚账单
- 编程中的命名设计那点事
- 405的第一次出现
- jsp url传中文最简单正确的方法
- LAZARUS