Vector的简单使用
来源:互联网 发布:女士斜挎包 淘宝 编辑:程序博客网 时间:2024/05/09 00:14
vector的简单介绍:
c++中的一种数据结构顺序容器,确切的说是一个类,相当于一个动态数组,数组的类型由自己定义,并且可以在数组进行各种操作。当程序员无法知道自己需要的数组的规模有多大时,可以用其来解决问题已达到最大节约空间的目的。
与数组的区别:
1.数组的定义必须定义数组的元素个数;但是vector不需要。
2.数组定义后空间固定,不能改变;而vector则灵活的多,空间可以进行可加可减。
3.vector可以进行一系列的函数操作,比如插入新元素,还有数组不能用一个存在的数组去创建一个新数组或者赋值,而vector由于是又类创建内部实现很多函数,因此这些功能均可以实现。。。
使用方法:
1.创建格式:vector<数据类型> 对象名;
例如:创建一个名为a的全是整型元素的容器:
vectot a;
迭代器
容器里除了使用下标来访问vector对象的元素外,标准库还提供了另一种检测元素的方法:使用迭代器(iterator)。迭代器是一种允许程序员检查容器内元素,并实现元素遍历的数据类型。
例如:
vector::iterator it;
这条语句定义了一个名为it的变量,它的数据类型是由vector定义的iterator类型。(实际相当一个指针)
提供基本操作:
1.begin()和endl()
vector ::iterator iter=vt.begin();//起始地址
vector ::iterator iter_end=vt.end();//结束地址
在遍历时一个for循环就可遍历出所有元素:
for ( it = a.begin(); it < a.end(); it++) { cout << " " << *it; }
2.rbegin() 返回一个逆序迭代器,它指向容器c的最后一个元素;
rend() 返回一个逆序迭代器,它指向容器c的第一个元素前面的位置
3.size—–容器当前有多少个元素;
4.capacity——-vector对象最多能容纳多少个元素;
5.max_size——指的是一个vector结构可供储存元素的个数的上线,通常是由于寻址空间决定的。
6.resize(n),一般是用来改变容器的大小,使其包含n个元素。如果n小于当前容器的尺寸较小,内容调减至其前n个元素,并把多余出来的元素销毁掉。
7.empty()判断容器为空,返回向量是否容器是空的,即无论其大小为0。
例如:
#include <iostream>#include <vector>using namespace std;int main (){ vector<int> myvector; int sum (0); for (int i=1;i<=10;i++) myvector.push_back(i); while (!myvector.empty()) { sum += myvector.back(); myvector.pop_back(); } cout << "total: " << sum << endl; return 0;}
输出 :total:55
8.swap()交换两个容器
例如:
int main(){ unsigned int i; vector<int> first(3, 100); // three ints with a value of 100 vector<int> second(5, 200); // five ints with a value of 200 first.swap(second); cout << "first contains:" << endl; for (i = 0; i < first.size(); i++) cout << " " << first[i] << endl; cout << "\nsecond contains:" << endl; for (i = 0; i < second.size(); i++) cout << " " << second[i] << endl; system("pause"); return 0;}
输出:
first contains: 200 200 200 200 200
second contains: 100 100 100
9.at—-通常来说,假设v是一个vector对象,则v.at(n)和v[n]是一样的,只不过前者会检查是否越界(因此花费的时间稍多),而后者不会(后者越界会导致未定义行为
int main(){ vector <int> myvector(10); // 10 zero-initialized ints unsigned int i; for (i = 0; i < myvector.size(); i++) { myvector.at(i) = i; } cout << "myvector contains:"; for (i = 0; i < myvector.size(); i++) { cout << " " << myvector.at(i) << endl; } system("pause"); return 0;}
输出:0、1、2、3、4、5、6、7、8、9
待改善。。。
0 0
- vector的简单使用
- Vector的简单使用
- Vector的简单使用
- Vector的简单使用
- Vector的简单使用
- vector的简单使用
- STL------vector的简单使用
- vector的简单使用二维vector的定义
- java中Vector的简单使用
- Vector的使用与简单剖析
- c++ vector的简单介绍和使用
- android vector矢量图的简单使用教程
- vector 简单使用
- vector简单使用
- Vector简单使用
- C++ vector简单使用
- vector的简单应用
- 简单的字典vector
- 题解:String to Integer (atoi)
- Week Training: 542 01 Matrix
- LeetCode 513. Find Bottom Left Tree Value
- 使用FIFO来进行两个进程间的通信
- cssRule那些事儿
- Vector的简单使用
- Fragment运行机制源码分析(一)
- 1569 最佳绿草
- JavaOOP 实现多态案列
- DEV 获取Grid选中值
- vb.net 教程 5-12 绘图实例之统计图 4 注意事项
- Clion如何编译支持pthread
- 从键盘接收一个文件夹路径,删除该文件夹
- acm算法思想总结