#include<iostream>
using namespace std;
#include "vector" //数组元素的 添加和删除
void main31()
{
//获取元素的大小
vector<int> v1;
cout <<"length: "<<v1.size()<<endl;
v1.push_back();
v1.push_back();
v1.push_back();
cout <<"length: "<<v1.size()<<endl; cout<<"头部元素"<<v1.front()<<endl; //修改头部 元素的值
//函数返回值当左值
v1.front() = ;
v1.back() = ; //获取头部和尾部元素
while (v1.size()>)
{
cout<<"尾部元素"<<v1.back();//获取尾部的元素
v1.pop_back();//删除尾部元素
}
}
//vector的初始化
void main32()
{
//1.
vector<int> v1;
v1.push_back();
v1.push_back();
v1.push_back();
v1.push_back(); //2.
vector<int> v2 = v1;//对象初始化 //3.
vector<int> v3(v1.begin(),v1.begin()+); } void printV(vector<int> &v)
{
for (int i =;i<v.size();i++)
{
cout<<v[i]<<endl;
}
} //vector的遍历:通过数组的方式
void main33()
{
vector<int> v1();//提前把内存准备好
for (int i = ;i<;i++)
{
v1[i] = i + ;
} for (int i = ;i<;i++)
{
printf("%d\n",v1[i]);
}
printV(v1);
} //push back的强化
void main34()
{
vector<int> v1();//提前把内存准备好
v1.push_back();//从数组的尾部插入元素
v1.push_back();
cout<<"size:"<<v1.size()<<endl;
printV(v1);
} //迭代器
void main35()
{
vector<int> v1();
for (int i =;i<;i++)
{
v1[i] = i+;
}
//正序遍历
for (vector<int>::iterator it = v1.begin();it != v1.end();it++)
{
cout<<*it<<endl;
} //逆序遍历
for (vector<int>::reverse_iterator rit = v1.rbegin();rit != v1.rend();rit++)
{
cout<<*rit<<endl;
} } //vector 删除
void main36()
{
vector<int> v1();
for (int i =;i<;i++)
{
v1[i] = i+;
}
//区间删除
v1.erase(v1.begin(),v1.begin()+); //指定位置删除
v1.erase(v1.begin());//在头部删除一个元素
printV(v1); cout<<endl;
//根据元素的值
v1[] = ;
v1[] = ;
printV(v1); for (vector<int>::iterator it = v1.begin();it != v1.end();)
{
if (*it == )
{
//it = v1.erase(it) 删除后,要接回、新的位置
it = v1.erase(it);//当删除迭代器所指向的元素的时候,erase会让it自动下移
}
else
{
it++;
}
}
printV(v1); cout<<endl; //插入元素
v1.insert(v1.begin(),);
v1.insert(v1.end(),);
printV(v1);
} void main()
{
//main31();
//main33();
//main35();
main36();
cout<<"hello..."<<endl;
return;
}

C++STL学习笔记_(1)vector知识的更多相关文章

  1. C++STL学习笔记_(1)string知识

    /*============================================ string是STL的字符串类型,通常用来表示字符串 = ======================== ...

  2. Effective STL 学习笔记: 多用 vector & string

    Effective STL 学习笔记: 多用 vector & string 如果可能的话, 尽量避免自己去写动态分配的数组,转而使用 vector 和 string . 原书作者唯一想到的一 ...

  3. C++STL学习笔记_(1)deque双端数组知识

    #include<iostream> using namespace std; #include "deque" #include "algorithm&qu ...

  4. C++STL学习笔记_(2)deque双端数组知识

    #include<iostream> using namespace std; #include "deque" #include "algorithm&qu ...

  5. C++STL学习笔记_(3)stack

    10.2.4stack容器 Stack简介 ²  stack是堆栈容器,是一种"先进后出"的容器. ²  stack是简单地装饰deque容器而成为另外的一种容器. ²  #inc ...

  6. C++STL学习笔记_(4)queue

    10.2.5Queue容器 Queue简介 ²  queue是队列容器,是一种"先进先出"的容器. ²  queue是简单地装饰deque容器而成为另外的一种容器. ²  #inc ...

  7. Effective STL 学习笔记 Item 34: 了解哪些算法希望输入有序数据

    Effective STL 学习笔记 Item 34: 了解哪些算法希望输入有序数据 */--> div.org-src-container { font-size: 85%; font-fam ...

  8. Effective STL 学习笔记 32 ~ 33

    Effective STL 学习笔记 32 ~ 33 */--> div.org-src-container { font-size: 85%; font-family: monospace; ...

  9. Effective STL 学习笔记 31:排序算法

    Effective STL 学习笔记 31:排序算法 */--> div.org-src-container { font-size: 85%; font-family: monospace; ...

随机推荐

  1. 通过seekBar改变图片的透明度

    作者:堕落的天使 对应的图片 activity_main.xml(代码) <RelativeLayout xmlns:android="http://schemas.android.c ...

  2. c++ 使用shell命令

    #include <iostream> #include <stdio.h> #include <vector> #include <unistd.h> ...

  3. WinForms中的Label的AutoSize属性

    当大量使用UserControl组合UI时,如果更改了Label的Text属性,Label.AutoSize属性会影响UserControl的OnLoad事件的发生顺序; public overrid ...

  4. Win8.1安装Visual Studio 2015提示需要KB2999226

    http://www.microsoft.com/zh-cn/download/details.aspx?id=48234 ,下载解压出来就有了,里面包含Vista.Win7.Win8.1三个系统x8 ...

  5. sqlmap用户手册

    http://192.168.136.131/sqlmap/mysql/get_int.php?id=1 当给sqlmap这么一个url的时候,它会: 1.判断可注入的参数2.判断可以用那种SQL注入 ...

  6. metasploit用法

    1.msfconsole 进入metasploit 2.help connect 查看帮助 3.msfcli -h 查看帮助 4.ms08_067_netapi O 字符命令后加“O”,查看配置 5. ...

  7. 哈夫曼树---POJ3253

    http://poj.org/problem?id=3253 这就是 最典型的哈夫曼树的题型,我们就根据这道题学习一下哈夫曼树 这是最开始我们把21据下来之后我们据下8,然后再据下5得到34,可以看出 ...

  8. 关于android 5.0对开发带来的影响

    由于google推出了android5.0的系统,在app的安装方式,权限的管理方面与之前的系统有较大的区别.自己做的app也有体会.现在记录一些要注意的东西,防止忘记: 1.5.0改变了对自定义权限 ...

  9. MyBatis的应用

    a)首先先导入固定的jar包 b)添加mybatis配置文件mybatis-config.xml 1.添加mybatis配置文件mybatis-config.xml <?xml version= ...

  10. Linux SAMBA Practical

    Samba配置 on Ap1-10.*.16.81首先,判斷samba服務是否安裝?[root@ap01 ~]# rpm -qa|grep sambasamba-client-3.5.10-125.e ...