`

C++标准库Vector & Iterator用法

 
阅读更多

//程序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++标准库参考.pdf

    C++标准库还包括一系列的容器类,它们在、、、、、、、&lt;vector&gt;等头文件中定义。这些容器类型支持数据的存储和管理,提供了丰富的成员函数和运算符重载来操作元素。 异常处理也是C++标准库重要的一部分。通过头文件...

    c++中的vector

    在C++标准模板库(STL)中,`vector`是一个非常重要的容器。它本质上是一个能够自动管理内存的动态数组,支持快速随机访问,允许在尾部高效地添加和删除元素。由于其高效性与灵活性,`vector`成为C++程序设计中使用最...

    c++中的vector的使用方法

    ### C++中的Vector使用方法详解 #### 一、Vector简介 在C++中,`vector`是标准模板库(STL)中的一个重要组成部分,它提供了一种动态数组的功能,能够自动管理内存并支持随机访问。相比于传统的C风格数组,`vector`...

    C++ Vector使用方法

    C++中的`std::vector`是一个非常重要的标准模板库(STL)容器,它提供了一种动态数组的功能。在C++编程中,`vector`经常用于处理动态大小的序列数据,其内部存储空间是连续的,这使得随机访问元素非常高效。下面我们将...

    C++标准库 第2版

    《C++标准库 第2版》这本书主要介绍了C++标准库的重要组成部分及其使用方法。 ### 1. 标准模板库(STL) #### 容器(Container) - **序列容器**(如vector、deque、list):用于存储元素,支持快速随机访问。 - **...

    vector容器与iterator迭代器

    `vector`是一种动态数组的实现形式,它属于C++标准库的一部分,并且被广泛应用于程序设计中。`vector`的主要优点在于其能够根据需求动态调整自身的大小,这使得它既方便使用又性能高效。 - **基本概念**: - `...

    c++标准库STL手册

    **C++标准库STL手册** C++标准模板库(STL)是C++编程语言中的一个重要组成部分,它提供了一组高效、可重用的容器、迭代器、算法和函数对象,大大简化了数据结构和算法的实现。STL手册通常会详细阐述这些组件的使用...

    c++ 标准库

    掌握C++标准库的使用规则对于提升C++编程技能至关重要,尤其在进行高级编程时更是如此。 ### C++标准库的分类 #### 容器(Containers) C++标准库中的容器被分为三大类:序列容器、关联容器以及容器适配器。序列...

    vector的用法深入解析

    vector 是 C++ 标准库中的一个类模板,它提供了一个动态数组的机制,能够自动扩展和收缩以适应不同的数据量。下面将深入解析 vector 的用法和特性。 一、 vector 的定义和初始化 vector 是一个类模板,需要使用尖...

    关于C++vector

    Vector容器是C++标准库中的一个重要组件,它提供了一种高效的方式来存储和访问数据。 Vector容器的使用方法有两种,一种是数组习惯用法,另一种是STL习惯用法。 数组习惯用法中,我们可以定义一个已知长度的...

    boost-STL.rar_Boost_C++标准库_STL_c 标准库_chm

    《深入探索Boost.STL:C++标准库与STL的强化》 Boost.STL是Boost库的一个重要组成部分,它是对C++标准库STL(Standard Template Library)的扩展和增强,旨在提供更高效、功能更丰富的容器、迭代器、算法和函数对象...

    C++中的vector类

    vector是C++标准模板库中的一个多功能的容器类,可以存放各种类型的对象,是一个动态数组,可以动态改变大小。下面详细介绍vector的使用方法和功能。 一、vector的基本用法 1. 定义一个vector容器:`vector&lt;int&gt; ...

    C++:C++标准库与STL教程

    C++标准库为开发者提供了一个强大且易于使用的工具集。通过学习和熟练掌握标准库的各个组成部分,开发者能够更高效地解决问题,并编写出更高质量的代码。此外,随着C++标准的不断演进,新的特性和改进也会不断加入到...

    vector1_STL_C++_vector_

    在C++编程语言中,标准模板库(Standard Template Library,简称STL)是不可或缺的一部分,它提供了一系列高效、可重用的数据结构和算法。STL中的`vector`是其中一个核心容器,它允许程序员动态地存储、管理和操作一...

    迭代器模式(Iterator)C++实现

    C++标准库中的迭代器通常提供`begin()`和`end()`函数,分别返回指向聚合开始和结束的迭代器。 3. **迭代器接口**:这是所有迭代器都必须遵循的一组操作,包括初始化、移动到下一个元素、获取当前元素的值以及检查...

Global site tag (gtag.js) - Google Analytics