C++ vector的使用
2016-01-15 18:02
363 查看
vector在C++中称为容器,为什么叫容器呢?顾名思义,就是能装下别的东西(对象).当然,要使用vector容器,必须引入#include<vector>的库。
vector是一个类模板,使用模板可以编写一个类定义或函数定义,而用于多个不同的数据类型。
(一)vector有几种初始化方法:
1.vector<T>v1;//T是数据类型,v1是变量名。v1默认值是空,vetoc<int> v1;
2.vector<T>v2(v1)//这里面的v1是v2的一个副本 vecotr<int> v2(v1)
3.vector<T> v3(n,i) //v3里面有n个值为i的元素 vector<int> v3(10,3)
4.vecotr<T> v4(n) //有n个副本 vector<int> v4(10)
(二)vector操作的对象
1. v.empty(),如果v为空,则返回true,否则false
2.v.size() 返回v中的元素个数
3.v.push_back(val) 在末尾插入一个值
4.v
可以用下标来访问v中的值,注意:必须是已存在的元素才能用下标操作
5 v.begin() v中第一个元素
6. v.end() 这里不是说v中最后一个元素,v.end()只是一个标识(哨兵),表示已经处理完v中的所有元素
7.vector<T>::iterator 这个是迭代器,可以跟5,6结合使用,待会看下例子。迭代器简单点就是:检查元素,并且遍历元素的数据类型。
例子:
以上便是对vector的基本操作方法。
vector是一个类模板,使用模板可以编写一个类定义或函数定义,而用于多个不同的数据类型。
(一)vector有几种初始化方法:
1.vector<T>v1;//T是数据类型,v1是变量名。v1默认值是空,vetoc<int> v1;
2.vector<T>v2(v1)//这里面的v1是v2的一个副本 vecotr<int> v2(v1)
3.vector<T> v3(n,i) //v3里面有n个值为i的元素 vector<int> v3(10,3)
4.vecotr<T> v4(n) //有n个副本 vector<int> v4(10)
(二)vector操作的对象
1. v.empty(),如果v为空,则返回true,否则false
2.v.size() 返回v中的元素个数
3.v.push_back(val) 在末尾插入一个值
4.v
可以用下标来访问v中的值,注意:必须是已存在的元素才能用下标操作
5 v.begin() v中第一个元素
6. v.end() 这里不是说v中最后一个元素,v.end()只是一个标识(哨兵),表示已经处理完v中的所有元素
7.vector<T>::iterator 这个是迭代器,可以跟5,6结合使用,待会看下例子。迭代器简单点就是:检查元素,并且遍历元素的数据类型。
例子:
vector<int> ival; cout << "请输入数字(结束按Ctrl+Z):" << endl; int num; while (cin>>num) { //将num的值在ival末尾插入 ival.push_back(num); } //如果ival不空则返回第一个元素 if (!ival.empty()) { cout << "ival中的第一个元素为:"<<ival[0]<<endl; } //输出ival中的全部值 cout << "输出方式1:" << endl; for (vector<int>::size_type ix = 0; ix != ival.size(); ++ix) { cout << ival[ix] << " "; } cout << endl; //或者是使用迭代器 vector<int>::iterator itr; itr = ival.begin(); cout << "输出方式2:" << endl; while (itr != ival.end()) { cout << *itr << " "; ++itr; } cout << endl;
vector<string> sval; cout << "请输入任意的几个字母(结束按Ctrl+z):" << endl; string str; while (cin>>str) { sval.push_back(str); } vector<string>::iterator sitr; //在string中还可以这么用 for (sitr = sval.begin(); sitr != sval.end();++sitr) { for (string::size_type index = 0; index != (*sitr).size();++index) { cout << (*sitr)[index] << endl; } }
以上便是对vector的基本操作方法。
相关文章推荐
- C++ Primer 5th Chapter 9 学习笔记
- C++中运算符重载
- c语言 数组名是常量指针
- MFC中ActiveX控件的使用
- C\C++ 使用do{...}while(0)进行宏定义的好处!!!
- 线程池的实现(c语言)
- 详解C++编程中标记语句与复合语句的写法
- 杨辉三角 C语言
- 魔方阵的实现 C语言
- C++ Primer 5th Chapter 8 学习笔记
- C++运行时获取类型信息的type_info类与bad_typeid异常
- C语言中的常用变量
- C++中关于拷贝构造函数
- Go与C语言的互操作 cgo
- C语言之括号匹配
- C\C++ windows 绕过strptime
- 解析C++编程中的bad_cast异常
- C++ Primer 5th Chapter 7 学习笔记
- C++ Primer 5th Chapter 6 学习笔记
- 详解C++中const_cast与reinterpret_cast运算符的用法