#include <iostream>
#include <vector>
#include <algorithm> //for_each
#include <ctime>
using namespace std;

void STRConstructor() //初始化,输入
{
vector<int> vec(5,12);
//cout << vec << endl; 错误

vector<int> vec1(5);
for(int i=0;i<5;i++)
cout << vec1[i] << endl;

vector<int> vec3(vec); //vector<char>就不行,<>中间必须相同
//cout << vec3 << endl; 错误

vector<int>::iterator ite=vec3.begin();
vector<int>::iterator ite1=vec3.end();
vector<int> vec4(ite,ite1);
//cout << vec4 << endl; 错误
for(int i=0;i<3;i++)
cout << vec4[i] << endl;
}

void strcapacity()
{
vector<int>vec(3);
vector<int>vec2();
//cout << vec.empty() << '\n' << vec2.empty() << endl; //报错?vec2
vec.reserve(10);
cout << vec.size() << vec.capacity() << endl;
vec.resize(2); //重新设置元素个数
cout << vec.size() << vec.capacity() << endl;

//vector<int> vec1(5);
//vec1.push_back(1);
//vec1.push_back(1); //不同编译器,效果不同 vs现有容量的一半
//cout << vec1.capacity() << endl;

//重新申请空间会使迭代器失效0
}

void fun(int i) //不能用模板
{
cout << i << ' ';
}

void output() //输出
{
vector<int>vec;
for(int i=0;i<10;i++)
{
vec.push_back(i);
cout << vec[i] << vec.at(i) <<endl;
}
cout << vec.back() << endl;
vector<int>::iterator ite=vec.begin();
for(;ite!=vec.end();ite++)
{
cout << *ite << endl;
}
for_each(vec.begin(),vec.end(),fun);
}

void operation() //操作函数
{
vector<int>vec;
vector<int>vec1(5,5);
for(int i=0;i<10;i++)
{
vec.push_back(i); //尾添加
}
//vec.insert(vec.begin()+3,12);
//vec.insert(vec.begin()+2,3,3);
//vec.insert(vec.begin()+3,vec1.begin(),vec1.begin()+2);

vec.pop_back(); //尾删除

//vec.erase(vec.begin()+3);

//vec.erase(vec.begin()+3,vec.end());

//vec.swap(vec1,vec);

cout << (vec<vec1) << endl;

for_each(vec.begin(),vec.end(),fun);
}

void algorithm() //需要头文件include<algorithm>
{
vector<int>vec;
vector<int>vec1(5,5);
for(int i=0;i<10;i++)
{
vec.push_back(10-i); //尾添加
}
for_each(vec.begin(),vec.end(),fun);

sort(vec.begin(),vec.end());

for_each(vec.begin(),vec.end(),fun);

sort(vec.begin(),vec.end(),greater<int>()); //include<functional>

for_each(vec.begin(),vec.end(),fun);
}

void supplement() //补充
{
vector<int>vec;
for(int i=0;i<10;i++)
{
vec.push_back(i);
}

vector<int>vec1(8,14);

//vec.assign(vec1.begin(),vec1.end()); //清除以前的,从新赋值

//vec.assign(3,0); //清除以前的,从新赋值

//vec.clear();

srand((unsigned int)time(0)); //真正的随机

random_shuffle(vec.begin(),vec.end()); //随机乱序

for_each(vec.begin(),vec.end(),fun);

cout << endl;

random_shuffle(vec.begin(),vec.end());

for_each(vec.begin(),vec.end(),fun);

cout << endl;
}

int main()
{
vector<int> vec;
//STRConstructor();
//strcapacity();
//output();
//operation();
//algorithm();
//supplement();
return 0;
}

/*
vector 固定的空间 常用
array
valarray cmath.h -- C语言中的操作函数,与计算有关

*/
/*
vector 可以放string 结构体 指针 对象 其他容器的对象

array

valarray //有很多数学函数 他里边有一个cmath.h函数的封装
*/

stl_vector复习的更多相关文章

  1. iOS总结_UI层自我复习总结

    UI层复习笔记 在main文件中,UIApplicationMain函数一共做了三件事 根据第三个参数创建了一个应用程序对象 默认写nil,即创建的是UIApplication类型的对象,此对象看成是 ...

  2. vuex复习方案

    这次复习vuex,发现官方vuex2.0的文档写得太简略了,有些看不懂了.然后看了看1.0的文档,感觉很不错.那以后需要复习的话,还是先看1.0的文档吧.

  3. 我的操作系统复习——I/O控制和系统调用

    上篇博客介绍了存储器管理的相关知识——我的操作系统复习——存储器管理,本篇讲设备管理中的I/O控制方式和操作系统中的系统调用. 一.I/O控制方式 I/O就是输入输出,I/O设备指的是输入输出设备和存 ...

  4. 复习(1)【Maven】

    终于开始复习旧知识了,有输入必然要有输出.输入和输出之间的内化过程尤为重要,在复习的同时,真正把学到的东西积淀下来,加深理解. Maven项目概念与配置 Maven是一个项目管理和综合工具.Maven ...

  5. 《CSS权威指南》基础复习+查漏补缺

    前几天被朋友问到几个CSS问题,讲道理么,接触CSS是从大一开始的,也算有3年半了,总是觉得自己对css算是熟悉的了.然而还是被几个问题弄的"一脸懵逼"... 然后又是刚入职新公司 ...

  6. JS复习--更新结束

    js复习-01---03 一 JS简介 1,文档对象模型 2,浏览器对象模型 二 在HTML中使用JS 1,在html中使用<script></script>标签 2,引入外部 ...

  7. jQuery 复习

    jQuery 复习 基础知识 1, window.onload $(function(){});   $(document).ready(function(){}); 只执行函数体重的最后一个方法,事 ...

  8. jQuery5~7章笔记 和 1~3章的复习笔记

    JQery-05 对表单和表格的操作及其的应用 JQery-06 jQuery和ajax的应用 JQery-07 jQuery插件的使用和写法 JQery-01-03 复习 之前手写的笔记.实在懒得再 ...

  9. HTML和CSS的复习总结

    HTML(Hypertext Markup Language)超文本标记语言:其核心就是各种标记!<html> HTML页面中的所有内容,都在该标签之内:它主要含<head>和 ...

随机推荐

  1. JS高级---总结apply和call方法的使用

    apply和call的使用方法 apply的使用语法   函数名字.apply(对象,[参数1,参数2,...]); 方法名字.apply(对象,[参数1,参数2,...]);   call的使用语法 ...

  2. STL初探

    关于STL的一些东西 感言: 学C++不学STL函数库的人可能都是... 有点问题 头文件<algorithm>的一些东西 sort,快排: 这是个初学者必需掌握的东西,及其好用,因为方( ...

  3. SQL中 select count(1) count中的1 到底是什么意思呢?和count(*)的区别

    count(1),其实就是计算一共有多少符合条件的行. 1并不是表示第一个字段,而是表示一个固定值.其实就可以想成表中有这么一个字段,这个字段就是固定值1,count(1),就是计算一共有多少个1.同 ...

  4. day11 ss命令 查看网络端口使用情况及对应pid centos7

    [root@oldboyedu ~]# ss -lntup Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port udp UNC ...

  5. C语言究竟是一门怎样的语言?

    对于大部分程序员,C语言是学习编程的第一门语言,很少有不了解C的程序员. C语言除了能让你了解编程的相关概念,带你走进编程的大门,还能让你明白程序的运行原理,比如,计算机的各个部件是如何交互的,程序在 ...

  6. ubuntu14.04安装google chrome

    安装好Ubuntu14.04之后安装google chrome浏览器 1.按下 Ctrl + Alt + t 键盘组合键,启动终端 2.在终端中,输入以下命令 (将下载源加入到系统的源列表.命令的反馈 ...

  7. Lenet 神经网络-实现篇(2)

    Lenet 神经网络在 Mnist 数据集上的实现,主要分为三个部分:前向传播过程(mnist_lenet5_forward.py).反向传播过程(mnist_lenet5_backword.py). ...

  8. 【音乐欣赏】《In The End》 - Taska Black / Aviella

    曲名:In The End 作者:Taska Black .Aviella [00:00.00] 作曲 : Joachim Gorrebeeck/Aviella Winder [00:11.48]La ...

  9. centos 7 添加swap

    [root@lab01 /]# cd / [root@lab01 /]# + records in + records out bytes ( MB/s [root@lab01 /]# free -m ...

  10. Go_ioutil包

    1. ioutil包的方法 // Discard 是一个 io.Writer 接口,调用它的 Write 方法将不做任何事情 // 并且始终成功返回. var Discard io.Writer = ...