stl_vector复习
#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复习的更多相关文章
- iOS总结_UI层自我复习总结
UI层复习笔记 在main文件中,UIApplicationMain函数一共做了三件事 根据第三个参数创建了一个应用程序对象 默认写nil,即创建的是UIApplication类型的对象,此对象看成是 ...
- vuex复习方案
这次复习vuex,发现官方vuex2.0的文档写得太简略了,有些看不懂了.然后看了看1.0的文档,感觉很不错.那以后需要复习的话,还是先看1.0的文档吧.
- 我的操作系统复习——I/O控制和系统调用
上篇博客介绍了存储器管理的相关知识——我的操作系统复习——存储器管理,本篇讲设备管理中的I/O控制方式和操作系统中的系统调用. 一.I/O控制方式 I/O就是输入输出,I/O设备指的是输入输出设备和存 ...
- 复习(1)【Maven】
终于开始复习旧知识了,有输入必然要有输出.输入和输出之间的内化过程尤为重要,在复习的同时,真正把学到的东西积淀下来,加深理解. Maven项目概念与配置 Maven是一个项目管理和综合工具.Maven ...
- 《CSS权威指南》基础复习+查漏补缺
前几天被朋友问到几个CSS问题,讲道理么,接触CSS是从大一开始的,也算有3年半了,总是觉得自己对css算是熟悉的了.然而还是被几个问题弄的"一脸懵逼"... 然后又是刚入职新公司 ...
- JS复习--更新结束
js复习-01---03 一 JS简介 1,文档对象模型 2,浏览器对象模型 二 在HTML中使用JS 1,在html中使用<script></script>标签 2,引入外部 ...
- jQuery 复习
jQuery 复习 基础知识 1, window.onload $(function(){}); $(document).ready(function(){}); 只执行函数体重的最后一个方法,事 ...
- jQuery5~7章笔记 和 1~3章的复习笔记
JQery-05 对表单和表格的操作及其的应用 JQery-06 jQuery和ajax的应用 JQery-07 jQuery插件的使用和写法 JQery-01-03 复习 之前手写的笔记.实在懒得再 ...
- HTML和CSS的复习总结
HTML(Hypertext Markup Language)超文本标记语言:其核心就是各种标记!<html> HTML页面中的所有内容,都在该标签之内:它主要含<head>和 ...
随机推荐
- STL 萃取(Traits)机制剖析
模板特化 在将萃取机制之前,先要说明模板特化 当有两个模板类,一个是通用泛型模板,一个是特殊类型模板,如果创建一个特殊类型的对象,会优先调用特殊的类型模板类,例如: template <type ...
- python logging 总结
基本用法: import sys # 获取logger实例,如果参数为空则返回root logger logger = logging.getLogger("AppName" ...
- AOP使用
package com.googosoft.db.aspect; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lan ...
- JS 数组克隆方法总结
ES5 方法总结 1.slice let arr = [2,4,434,43] let arr1= arr.slice() arr[0] = 'a' console.log(arr,arr1) // ...
- JVM 引用类型
1.强引用 强引用,是在我们的开发工作当中普遍存在的.如果一个对象具有强引用,那就类似我们经常穿的衣服啊等必不可少的生活用品,我们肯定不会把他扔掉,同样jvm的垃圾回收器也不会回收它.当内存空间不足的 ...
- Flask 教程 第十九章:Docker容器上的部署
本文翻译自The Flask Mega-Tutorial Part XIX: Deployment on Docker Containers 这是Flask Mega-Tutorial系列的第十九部分 ...
- 编程道拓扑bcd.top 0x01/ 开局第一篇: 随便聊聊/ 随笔
0x01 开局 编程道拓扑(bcd.top)是一个前端从业者的思考和总结, 如果你喜欢, 欢迎关注! 作者是一个前端从业者, 本系列会总结作者在工作和学习中的一些思考, 会有具体的技术点, 也会有关于 ...
- ASP.NET/C# Razor视图引擎深入浅出
在ASPX中我们使用 <% %>在里面编写C#代码在Razor中我们将会使用@{}编写C#代码1.基础——@+属性显示计算1+2的值:<span>1+2=@(1+2)</ ...
- drf三大组件之认证组件与权限组件
复习 """ 视图家族 1.视图类:APIView.GenericAPIView APIView:作为drf的基础view:as_view()禁用csrf:dispatc ...
- 最小生成树计数 模板 hdu 4408
题意是给定n个点,m条边的无向图,求最小生成树的个数对p取模. 用kruscal计算最小生成树时,每次取连接了两个不同联通块的最小的边.也就是先处理d1条c1长度的边,再处理d2条c2长度的边.长度相 ...