//程序1
#include <iostream>
#include <vector>
//using namespace std;
using std::cin;
using std::cout;
using std::endl;
using std::vector;
using std::string;
//vector's demo class
class VectorDemo
{
private:
int num;
vector<int> ivec;
vector<string> svec;
public:
VectorDemo()
{
}
VectorDemo(int temp)
{
num = temp;
}
void VectorEssentialUse(void);
void IteratorEssentialUse(void);
};
void VectorDemo::VectorEssentialUse()
{
int i = 0;
for(i = 0; i < 3; i++)
{
ivec.push_back(i+1);
}
for(i = 0; i < 3; i++)
{
cout << ivec[i] << endl;
}
cout << "ivec_length = " << ivec.size() << endl;
ivec.clear();
cout << "ivec_length = " << ivec.size() << endl;
cout << "svec_length = " << svec.size() << endl;
for(i = 0; i < 3; i++)
{
svec.push_back("aaa");
}
cout << "svec_length = " << svec.size() << endl;
for(i = 0; i < 3; i++)
{
cout << svec[i] << endl;
svec.pop_back();
cout << "svec_length = " << svec.size() << endl;
}
vector<int> iv1(10);
vector<int> iv2(10,100);
vector<int> iv3(iv2);
for(i = 0; i < 10; i++)
{
iv1[i] = i;
cout << iv1[i] << " " << iv2[i] << " " << iv3[i] << endl;
}
return;
}
void VectorDemo::IteratorEssentialUse()
{
int i = 0;
for(i = 0; i < 3; i++)
{
ivec.push_back(i+1);
}
for(vector<int>::size_type i = 0; i != ivec.size(); i++)//essential loop
{
cout << ivec[i] << endl;
}
for(vector<int>::iterator iter = ivec.begin(); iter != ivec.end(); iter++)//iterator loop
{
cout << *iter << endl;
*iter = 100000000;//iterator can change the value.
cout << *iter << endl;
}
return;
}
int main(int argc, char *argv[])
{
VectorDemo *p = new VectorDemo();
p->IteratorEssentialUse();
cout << "Application Run Successfully!" << endl;
return 0;
}
//程序2
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::cin;
using std::cerr;
using std::string;
using std::vector;
int main(int argc, char *argv[])
{
vector<int> myvector(3, 100);
vector<int>::iterator it;
for(it = myvector.begin(); it != myvector.end(); it++)
{
cout << *it << endl;
}
cout << endl;
it = myvector.begin();
it = myvector.insert(it, 200);
for(it = myvector.begin(); it != myvector.end(); it++)
{
cout << *it << endl;
}
cout << endl;
myvector.insert(it, 2, 300);
for(it = myvector.begin(); it != myvector.end(); it++)
{
cout << *it << endl;
}
// "it" no longer valid, get a new one:
it = myvector.begin();
vector<int> anothervector(2, 400);
myvector.insert(it + 2, anothervector.begin(), anothervector.end());
int myarray[] = { 501, 502, 503 };
myvector.insert(myvector.begin(), myarray, myarray + 3);
cout << "myvector contains:";
for (it = myvector.begin(); it < myvector.end(); it++)
cout << " " << *it;
cout << endl;
cout << "Application Run Successfully!" << endl;
return 0;
}
小结:
1.#include <vector> 并且 using std::vector;
2.所有的标准库容器类都定义了相应的iterator类型
3.定义一个vector
vector <int> vect;
vector <int> vect1(12);//12个int类型元素,每个元素的初始值均为0
vector <int> vect2(12,9);//12个int,初试值均为9
4.定义迭代器iterator
vector <int>::iterator iter=vt.begin();//起始地址
vector <int>::iterator iter_end=vt.end();//结束地址,两个地址都是指针类型
5.vector的一些基本方法(size(),insert(),push_back(),pop_back(),begin(),end())
6.const_iterator,只能用于读取容器内元素值,不能用于改变容器内元素值
7.迭代器基本操作:iter++,++iter,iter- -,--iter,iter+n,iter,-n,iter1-iter2
8.vector对象可用数组进行初始化
const size_t arr_size = 6;
int int_arr[arr_size] = {0,1,2,3,4,5};
//ivec has 6 elements:each a copy of the corresponding element in int_arr
vector<int> ivec(int_arr,int_arr + arr_size);
or
vector<int> ivec(int_arr + 1, int_arr +4);//copy 3 elements:int_arr[1],int_arr[2],int_arr[3]
转自:http://blog.163.com/hbu_lijian/blog/static/12612915320120511849791/
相关推荐
C++标准库还包括一系列的容器类,它们在、、、、、、、<vector>等头文件中定义。这些容器类型支持数据的存储和管理,提供了丰富的成员函数和运算符重载来操作元素。 异常处理也是C++标准库重要的一部分。通过头文件...
在C++标准模板库(STL)中,`vector`是一个非常重要的容器。它本质上是一个能够自动管理内存的动态数组,支持快速随机访问,允许在尾部高效地添加和删除元素。由于其高效性与灵活性,`vector`成为C++程序设计中使用最...
### C++中的Vector使用方法详解 #### 一、Vector简介 在C++中,`vector`是标准模板库(STL)中的一个重要组成部分,它提供了一种动态数组的功能,能够自动管理内存并支持随机访问。相比于传统的C风格数组,`vector`...
C++中的`std::vector`是一个非常重要的标准模板库(STL)容器,它提供了一种动态数组的功能。在C++编程中,`vector`经常用于处理动态大小的序列数据,其内部存储空间是连续的,这使得随机访问元素非常高效。下面我们将...
《C++标准库 第2版》这本书主要介绍了C++标准库的重要组成部分及其使用方法。 ### 1. 标准模板库(STL) #### 容器(Container) - **序列容器**(如vector、deque、list):用于存储元素,支持快速随机访问。 - **...
`vector`是一种动态数组的实现形式,它属于C++标准库的一部分,并且被广泛应用于程序设计中。`vector`的主要优点在于其能够根据需求动态调整自身的大小,这使得它既方便使用又性能高效。 - **基本概念**: - `...
**C++标准库STL手册** C++标准模板库(STL)是C++编程语言中的一个重要组成部分,它提供了一组高效、可重用的容器、迭代器、算法和函数对象,大大简化了数据结构和算法的实现。STL手册通常会详细阐述这些组件的使用...
掌握C++标准库的使用规则对于提升C++编程技能至关重要,尤其在进行高级编程时更是如此。 ### C++标准库的分类 #### 容器(Containers) C++标准库中的容器被分为三大类:序列容器、关联容器以及容器适配器。序列...
vector 是 C++ 标准库中的一个类模板,它提供了一个动态数组的机制,能够自动扩展和收缩以适应不同的数据量。下面将深入解析 vector 的用法和特性。 一、 vector 的定义和初始化 vector 是一个类模板,需要使用尖...
Vector容器是C++标准库中的一个重要组件,它提供了一种高效的方式来存储和访问数据。 Vector容器的使用方法有两种,一种是数组习惯用法,另一种是STL习惯用法。 数组习惯用法中,我们可以定义一个已知长度的...
《深入探索Boost.STL:C++标准库与STL的强化》 Boost.STL是Boost库的一个重要组成部分,它是对C++标准库STL(Standard Template Library)的扩展和增强,旨在提供更高效、功能更丰富的容器、迭代器、算法和函数对象...
vector是C++标准模板库中的一个多功能的容器类,可以存放各种类型的对象,是一个动态数组,可以动态改变大小。下面详细介绍vector的使用方法和功能。 一、vector的基本用法 1. 定义一个vector容器:`vector<int> ...
C++标准库为开发者提供了一个强大且易于使用的工具集。通过学习和熟练掌握标准库的各个组成部分,开发者能够更高效地解决问题,并编写出更高质量的代码。此外,随着C++标准的不断演进,新的特性和改进也会不断加入到...
在C++编程语言中,标准模板库(Standard Template Library,简称STL)是不可或缺的一部分,它提供了一系列高效、可重用的数据结构和算法。STL中的`vector`是其中一个核心容器,它允许程序员动态地存储、管理和操作一...
C++标准库中的迭代器通常提供`begin()`和`end()`函数,分别返回指向聚合开始和结束的迭代器。 3. **迭代器接口**:这是所有迭代器都必须遵循的一组操作,包括初始化、移动到下一个元素、获取当前元素的值以及检查...