vector 的学习

#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <vector>
#include <assert.h>
const int m = 300;
#define max 0x3f3f3f3f
int a[10];
using namespace std;
int main()
{
     vector<int> vc;
     int n =10,k;
     while(n--)
     {
         cin>>k;
         vc.push_back(k);
     }
     vector<int>::iterator itr = vc.begin();
     sort(itr,vc.end());

     for(itr = vc.begin(); itr!=vc.end(); itr++)
     {
         cout<<*itr<<" ";
     }
     for(vector<int>::size_type i = 0;i<vc.size();i++){ //遍历输出 是不是很像数组
            cout<<vc[i]<<" ";
     }
     cout<<endl;
    vector<string> v(5, "hello");//初始化5个hello;
    vector<string> v2(v.begin(), v.end());//将v拷贝给v2

    assert(v == v2);//断言

    cout<<"> Before operation"<<endl;
    for(vector<string>::const_iterator it = v.begin(); it < v.end(); ++it)//常量迭代器,不可改变元素值
        cout<<*it<<endl;
    v.insert(v.begin() + 3, 4, "hello, world");//在第3个后插入4和hello,world ->6
    cout<<"> After insert"<<endl;

    for(vector<string>::size_type i = 0; i < v.size(); ++i)
        cout<<v[i]<<endl;
    vector<string>::iterator it = v.erase(v.begin() + 3, v.begin() + 6);//删除下标2->5 hello world
    //删除某范围内的元素时:返回值也表示一个迭代器,指向最后一个删除元素的下一个元素;
    assert(*it == "hello, world");//最后一个hello,world
    cout<<*it<<endl;//指向

    cout<<"> After erase"<<endl;

    for(vector<string>::size_type i = 0; i != v.size(); ++i)
        cout<<v[i]<<endl;
    assert(v.begin() + v.size() == v.end());
    assert(v.end() - v.size() == v.begin());
    assert(v.begin() - v.end() == -vector<string>::difference_type(v.size()));
    //两个迭代器之间的距离,表示一个容器的最大容量,对连续空间的容器而言,头尾之间的距离就是其最大容量。
    return 0;
}

阅读更多
版权声明:希望和大家共同学习,有问题烦请指出,苦涩脸。 https://blog.csdn.net/sinat_39688622/article/details/79944918
文章标签: vector
个人分类: vector的学习
上一篇NYOJ - 阶乘之和
下一篇HDU3823 Prime Friend
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭