C/C++基础——vector的基本操作总结
2016-08-11 10:38
387 查看
http://blog.csdn.net/google19890102/article/details/51701144
标准库vector类型是C++中使用较多的一种类模板,vector类型相当于一种动态的容器,在vector中主要有一些基本的操作,接下来分别从以下的几个方面总结:
vector对象的定义和初始化
vector对象的基本操作,主要包括添加元素,遍历等
在vector中主要有四种定义和初始化的方法:
定义的方法为:
定义的方法为:
定义的方法为:
定义了长度为n的vector v2,并且每个元素都是i。
定义的方法为:
采用的初始化方法为默认初始化。
对于上述的四种定义方法如下图所示:
注:上述代码是在C中使用vector。
在vector中的基本操作包括插入,删除,遍历等。
在vector中插入元素包括两种,一种是在尾部添加元素,使用的函数是
其中,
指的是在迭代器p之前插入值为t的元素。具体应用如下面的例子:
使用
删除迭代器p所指向的元素。
除此之外,还有
遍历通常有两种方式:
通过下标
利用迭代器
如下:
在上面的操作中,还有一些操作,如:
size(),返回的是vector的大小
标准库vector类型是C++中使用较多的一种类模板,vector类型相当于一种动态的容器,在vector中主要有一些基本的操作,接下来分别从以下的几个方面总结:
vector对象的定义和初始化
vector对象的基本操作,主要包括添加元素,遍历等
1、vector对象的定义和初始化
在vector中主要有四种定义和初始化的方法:
1.1、定义空的vector
定义的方法为:vector<T> v;
1.2、定义一个vector的副本
定义的方法为:vector<T> v1(v);
1.3、定义并初始化
定义的方法为:vector<T> v2(n, i);
定义了长度为n的vector v2,并且每个元素都是i。
1.4、定义并指定初始长度
定义的方法为:vector<T> v3(n);
采用的初始化方法为默认初始化。
1.5、例子
对于上述的四种定义方法如下图所示:#include <stdio.h> #include <vector> using namespace std; int main(){ //第一种定义方法 vector<int> v; for (int i = 0; i < 10; i++){ v.push_back(i); } //第二种定义方法 vector<int> v1(v); //第三种定义方法 vector<int> v2(10, 1); //第四种定义方法 vector<int> v3(10); printf("first: "); for (vector<int>::size_type ix = 0; ix != v.size(); ix ++){ printf("%d\t", v[ix]); } printf("\n"); printf("second: "); for (vector<int>::size_type ix1 = 0; ix1 != v1.size(); ix1 ++){ printf("%d\t", v1[ix1]); } printf("\n"); printf("third: "); for (vector<int>::size_type ix2 = 0; ix2 != v2.size(); ix2 ++){ printf("%d\t", v2[ix2]); } printf("\n"); printf("forth: "); for (vector<int>::size_type ix3 = 0; ix3 != v3.size(); ix3 ++){ printf("%d\t", v3[ix3]); } printf("\n"); return 0; }
注:上述代码是在C中使用vector。
2、vector中的基本操作
在vector中的基本操作包括插入,删除,遍历等。
2.1、插入操作
在vector中插入元素包括两种,一种是在尾部添加元素,使用的函数是push_back()函数,另一种是在指定位置插入元素,使用到的函数是
insert()函数。
其中,
insert()函数的具体形式为:
insert(p, t)
指的是在迭代器p之前插入值为t的元素。具体应用如下面的例子:
#include <stdio.h> #include <vector> using namespace std; int main(){ vector<int> v; for (int i = 0; i < 10; i++){ v.push_back(i); } for (vector<int>::size_type ix = 0; ix != v.size(); ix ++){ printf("%d\t", v[ix]); } printf("\n"); //在开始插入10 v.insert(v.begin(), 10); for (vector<int>::size_type ix = 0; ix != v.size(); ix ++){ printf("%d\t", v[ix]); } printf("\n"); //在10和0之间添加11 vector<int>::iterator it; for (it = v.begin(); it != v.end(); it++){ if (*it == 0){ v.insert(it, 11); break; } } for (vector<int>::size_type ix = 0; ix != v.size(); ix ++){ printf("%d\t", v[ix]); } printf("\n"); return 0; }
2.2、删除操作
使用erase()方法删除指定的元素。
erase(p)
删除迭代器p所指向的元素。
#include <stdio.h> #include <vector> using namespace std; int main(){ vector<int> v; for (int i = 0; i < 10; i++){ v.push_back(i); } for (vector<int>::size_type ix = 0; ix != v.size(); ix ++){ printf("%d\t", v[ix]); } printf("\n"); //在开始插入10,10,10 v.insert(v.begin(), 3, 10); for (vector<int>::size_type ix = 0; ix != v.size(); ix ++){ printf("%d\t", v[ix]); } printf("\n"); //删除第二个10 int i = 0; vector<int>::iterator it; for (it = v.begin(); it != v.end(); it++){ i++ ; if (i == 2){ v.erase(it); break; } } for (vector<int>::size_type ix = 0; ix != v.size(); ix ++){ printf("%d\t", v[ix]); } printf("\n"); return 0; }
除此之外,还有
clear()方法,清空vector中的所有元素,
pop_back()方法,删除末尾的元素。
#include <stdio.h> #include <vector> using namespace std; int main(){ vector<int> v; for (int i = 0; i < 10; i++){ v.push_back(i); } for (vector<int>::size_type ix = 0; ix != v.size(); ix ++){ printf("%d\t", v[ix]); } printf("\n"); //删除末尾元素 v.pop_back(); for (vector<int>::size_type ix = 0; ix != v.size(); ix ++){ printf("%d\t", v[ix]); } printf("\n"); return 0; }
2.3、遍历
遍历通常有两种方式:通过下标
利用迭代器
如下:
#include <stdio.h> #include <vector> using namespace std; int main(){ vector<int> v; for (int i = 0; i < 10; i++){ v.push_back(i); } //利用下标 for (vector<int>::size_type ix = 0; ix != v.size(); ix ++){ printf("%d\t", v[ix]); } printf("\n"); //利用迭代器 vector<int>::iterator it; for (it = v.begin(); it != v.end(); it ++){ printf("%d\t", *it); } printf("\n"); return 0; }
2.4、其他
在上面的操作中,还有一些操作,如:size(),返回的是vector的大小
相关文章推荐
- C/C++基础——vector的基本操作总结
- C/C++基础——map的基本操作总结
- C/C++基础——set的基本操作总结
- C/C++基础——set的基本操作总结
- C/C++基础:set的基本操作总结及注意细节问题
- C/C++基础——map的基本操作总结
- C++基础:string和vector操作
- C++ 基本操作 考点总结 (二)
- C++ vector基本操作学习
- Vector c++ 的基本操作 矢量 *_* !
- c++ 基本操作 考点总结(四)
- 【基础备忘】C++单链表基本操作
- C++基础总结(1)--基本数据类型范围
- c++ 基本操作 考点总结(三)
- Python基础-基本操作命令总结
- C++vector的使用总结及常用vector操作
- C++中vector向量的基本操作
- C++基础知识(四)文件的基本操作
- C++中vector 容器的基本操作
- C++基础知识总结-类的基本知识