库文件vector的用法
来源:互联网 发布:国联证券交易软件下载 编辑:程序博客网 时间:2024/05/22 04:44
vector的成员函数 和简单的使用代码
c.assign(beg,end)
将[beg; end)区间中的数据赋值给c。
c.assign(n,elem)
将n个elem的拷贝赋值给c。
c.at(idx)
传回索引idx所指的数据,如果idx越界,抛出out_of_range。
c.back()
传回最后一个数据,不检查这个数据是否存在。
c.begin()
传回迭代器中的第一个数据。
c.capacity()
返回容器中数据个数。
c.clear()
移除容器中所有数据。
c.empty()
判断容器是否为空。
c.end()
指向迭代器中的最后一个数据地址。
c.erase(pos)
删除pos位置的数据,传回下一个数据的位置
c.erase(beg,end)
删除[beg,end)区间的数据,传回下一个数据的位置。
c.front()
传回地一个数据。
get_allocator
使用构造函数返回一个拷贝。
c.insert(pos,elem)
在pos位置插入一个elem拷贝,传回新数据位置。
c.insert(pos,n,elem)
在pos位置插入n个elem数据。无返回值。
c.insert(pos,beg,end)
在pos位置插入在[beg,end)区间的数据。无返回值。
c.max_size()
返回容器中最大数据的数量。
c.pop_back()
删除最后一个数据。
c.push_back(elem)
在尾部加入一个数据。
c.rbegin()
传回一个逆向队列的第一个数据。
c.rend()
传回一个逆向队列的最后一个数据的下一个位置。
c.resize(num)
重新指定队列的长度。
c.reserve()
保留适当的容量。
c.size()
返回容器中实际数据的个数。
c1.swap(c2)
swap(c1,c2)
将c1和c2元素互换。
同上操作。
vector<Elem> c
创建一个空的vector。
vector <Elem> c1(c2)
复制一个vector。
vector <Elem> c(n)
创建一个vector,含有n个数据,数据均已缺省构造产生。
vector <Elem> c(n, elem)
创建一个含有n个elem拷贝的vector。
vector <Elem> c(beg,end)
创建一个以[beg;end)区间的vector。
c.~ vector <Elem>()
销毁所有数据,释放内存。
#include <iostream>
#include <vector>
using namespace std;
typedef vector<int> INTVECTOR;//自定义类型INTVECTOR
//测试vector容器的功能
int main( )
{
//vec1对象初始为空
INTVECTOR vec1;
//vec2对象最初有10个值为6的元素
INTVECTOR vec2(10,6);
//vec3对象最初有3个值为6的元素,拷贝构造
INTVECTOR vec3(vec2.begin(),vec2.begin()+3);
//声明一个名为i的双向迭代器
INTVECTOR::iterator i;
//从前向后显示vec1中的数据
cout<<"vec1.begin()--vec1.end():"<<endl;
for (i =vec1.begin(); i !=vec1.end(); ++i)
cout << *i << " ";
cout << endl;
//从前向后显示vec2中的数据
cout<<"vec2.begin()--vec2.end():"<<endl;
for (i =vec2.begin(); i !=vec2.end(); ++i)
cout << *i << " ";
cout << endl;
//从前向后显示vec3中的数据
cout<<"vec3.begin()--vec3.end():"<<endl;
for (i =vec3.begin(); i !=vec3.end(); ++i)
cout << *i << " ";
cout << endl;
//测试添加和插入成员函数,vector不支持从前插入
vec1.push_back(2);//从后面添加一个成员
vec1.push_back(4);
vec1.insert(vec1.begin()+1,5);//在vec1第一个的位置上插入成员5
//从vec1第一的位置开始插入vec3的所有成员
vec1.insert(vec1.begin()+1,vec3.begin(),vec3.end());
cout<<"after push() and insert() now the vec1 is:" <<endl;
for (i =vec1.begin(); i !=vec1.end(); ++i)
cout << *i << " ";
cout << endl;
//测试赋值成员函数
vec2.assign(8,1); // 重新给vec2赋值,8个成员的初始值都为1
cout<<"vec2.assign(8,1):" <<endl;
for (i =vec2.begin(); i !=vec2.end(); ++i)
cout << *i << " ";
cout << endl;
//测试引用类函数
cout<<"vec1.front()="<<vec1.front()<<endl;//vec1第零个成员
cout<<"vec1.back()="<<vec1.back()<<endl;//vec1的最后一个成员
cout<<"vec1.at(4)="<<vec1.at(4)<<endl;//vec1的第五个成员
cout<<"vec1[4]="<<vec1[4]<<endl;
//测试移出和删除
vec1.pop_back();//将最后一个成员移出vec1
vec1.erase(vec1.begin()+1,vec1.end()-2);//删除成员
cout<<"vec1.pop_back() and vec1.erase():" <<endl;
for (i =vec1.begin(); i !=vec1.end(); ++i)
cout << *i << " ";
cout << endl;
//显示序列的状态信息
cout<<"vec1.size(): "<<vec1.size()<<endl;//打印成员个数
cout<<"vec1.empty(): "<<vec1.empty()<<endl;//清空
/*vec1.begin()--vec1.end():
vec2.begin()--vec2.end():
6 6 6 6 6 6 6 6 6 6
vec3.begin()--vec3.end():
6 6 6
after push() and insert() now the vec1 is:
2 6 6 6 5 4
vec2.assign(8,1):
1 1 1 1 1 1 1 1
vec1.front()=2
vec1.back()=4
vec1.at(4)=5
vec1[4]=5
vec1.pop_back() and vec1.erase():
2 6 5
vec1.size(): 3
vec1.empty(): 0
*/
}
#include<stdio.h>
#include<vector>
#include <iostream>
using namespace std;
void main()
{
int i = 0, j = 0;
vector<int> a(10,1),b(10,5);
vector<int>::iterator k;
vector< vector<int> > Array;
vector< int > line;
cout<<a.begin()<<"/t"<<a.end()<<endl;
cout<<a.end()-a.begin();
for(k=a.begin();k!=a.end();k++)
cout<<*k<<endl;
a.pop_back();
cout<<endl;
for(k=a.begin();k!=a.end();k++)
cout<<*k<<endl;
cout<<endl;
a.insert(a.begin()+4,b.begin(),b.end());
for(k=a.begin();k!=a.end();k++)
cout<<*k<<endl;
cout<<endl;
cout<<a.front()<<" "<<a.back()<<endl;
cout<<a.at(3)<<" "<<a[3]<<endl;
cout<<a.at(4)<<" "<<a[4]<<endl;
cout<<a.at(5)<<" "<<a[5]<<endl;
cout<<endl;
for( j = 0; j < 10; j++ )
{
Array.push_back( line );//要对每一个vector初始化,否则不能存入元素。
for ( i = 0; i < 9; i++ )
{
Array[ j ].push_back( i );
}
}
cout<<endl;
cout<<endl;
for( j = 0; j < 10; j++ )
{
for( i = 0; i < Array[ j ].size(); i++ )
{
cout << Array[ j ][ i ] << " ";
}
cout<< endl;
}
cout<<endl;
cout<<endl;
vector< vector<int> > B(Array);
for( j = 0; j < 10; j++ )
{
for( i = 0; i < B[ j ].size(); i++ )
{
cout << B[ j ][ i ] << " ";
}
cout<< endl;
}
cout<<Array.size()<<endl;
cout<<Array.max_size();
getchar();
}
- 库文件vector的用法
- Vector的用法
- Vector的用法
- Vector的用法
- Vector类的用法
- Vector的用法
- Vector的用法
- vector的用法
- vector的用法
- vector的基本用法
- java Vector的用法
- Vector的用法
- C++ Vector的用法
- STL Vector的用法
- vector的用法
- vector的用法
- vector的用法
- Vector的用法
- C语言 如何得到文件的大小
- MyEclipse:修改MyEclipse开发工具中的页面模板(JSP和HTML等)
- 完全删除Oracle数据库的方法
- 用“看板图”实现敏捷项目的可视化
- 如何下载visifire 3.x以后的版本
- 库文件vector的用法
- 用DTree实现对所有树形结构的增删改查
- JS操作JSON总结
- C/C++]可变参函数的定义和使用【转】
- 纳沃斯公司
- js生成日期
- C++——inline函数
- 有用的源码集合
- DoDataExchange,UpdateData