vector初始化

2019 ICPC上海赛区 M Blood Pressure Game 血压游戏

大憨熊 提交于 2019-11-29 06:36:54
血压游戏,实质名归好吧233333~ 代码时间是 2019-11-23 18:34:27一个标点符号我都没有修改,贴在这里了。 不排除有错误,我也真的没有再检查过了。询问了出题组包括bin巨,他们同意我把标程发过来。 我觉得很有可能会被发现哪里写得有问题,但是能学到知识不是美滋滋吗 ~ 而且确实也没有影响比赛结果。问心无愧。 // #include <bits/stdc++.h> #include<stdio.h> #include<iostream> #include<string> #include<string.h> #include<set> #include<map> #include<vector> #include<queue> #include<algorithm> #include<time.h> using namespace std; #define FMS(x, y, g) memset(x, y, sizeof(x[0]) * (g)) typedef long long LL; // Variables For the Specific Problem const bool GUESS = false; // 是否验证一些猜想(如点数、边数等)的开关 const bool DEBUG = false; // 是否输出细节(用于调试)的开关 //

简答题a

扶醉桌前 提交于 2019-11-29 06:00:19
1.ArrayList,Vector,LinkedList的存储性能和特性是什么? 答:1.他们都是在lang包中,都是可以动态改变长度的数组 2.ArrayList和Vector索引数据快,插入数据慢;他们都有一个初始化的容量,当超过他们容量时Vector默认扩充为原来的两倍,ArratList默认扩充 1.5倍;因为ArrayList是方法同步,所以是不安全的,而Vector是线程安全的; LinkedList是采用双向列表实现,是从列表头开始索引,插入效率高,随机访问效率低,线程不安全。 应用场景:对数据主要操作为索引或在集合末端增加,删除元素时,使用AL或Vector;对数据指定位置插入删除使用LinkedList;多线程使用容器时用Vector 2.垃圾回收器 答:1.三项任务:分配内存,确保被引用对象的内存不被错误回收笔记回收不在被引用的对象的内存空间。 2.垃圾回收器(Garbage Collection,GC)使有向图记录和管理堆内存中的所有对象,识别可达和不可达对象,所有不可达对象都是可被回收。 3.开发人员不能实时调用进行垃圾回收,但是可以调用System.gc()通知垃圾回收器的运行,也不能保证马上运行!不推荐频繁使用gc()! 来源: https://www.cnblogs.com/9797ch/p/11457618.html

序列式容器————vector

Deadly 提交于 2019-11-29 03:17:12
目录 介绍 1 创建 2 容量和大小   size()   capacity() 3 resize() 4 reverse() 5 获取元素   front()   back() 6 迭代器(待补充) 7 push_back() 8 emplace_back() 9 emplace()(待补充) 10 insert() 11 clear() 12 remove() 13 pop_back() 14 shrink_to_fit() 15 erase() 介绍 和 array<T,N> 容器相似,不同的是 vector<T> 容器的大小可以自动增长。在大多数时候,都可以用 vector<T> 代替数组存放元素。只要能够意识到,vector<T> 在扩展容量,以 及在序列内部删除或添加元素时会产生一些开销;但大多数情况下,代码不会明显变慢。 为了使用 vector<T> 容器模板,需要在代码中包含头文件 vector。 1 创建 vector<int> a ; //声明一个int型向量a vector<int> a(10) ; //声明一个初始大小为10的向量 vector<int> a(10, 1) ; //声明一个初始大小为10且初始值都为1的向量 vector<int> b(a) ; //声明并用向量a初始化向量b vector<int> b(a.begin(), a.begin(

ncnn笔记

不想你离开。 提交于 2019-11-29 02:35:46
最近看了ncnn的源码,代码风格清爽, 遂想先抛开VULKAN记录一下它的推理流程。 1. 先看个yolov2 demo csdn上的帖子 https://blog.csdn.net/sinat_31425585/article/details/83243961 , 其文末还附了福利直接可用的模型 https://download.csdn.net/download/sinat_31425585/10737783 ,超赞的良心博主。 yolov2.cpp  //construct net    ncnn::Net yolov3; yolov3.load_param("mobilenetv2_yolov3.param"); yolov3.load_model("mobilenetv2_yolov3.bin"); //read in img ncnn::Mat in = ncnn::Mat::from_pixels_resize(bgr.data, ncnn::Mat::PIXEL_BGR, bgr.cols, bgr.rows, target_size, target_size); //substract mean const float mean_vals[3] = {127.5f, 127.5f, 127.5f}; const float norm_vals[3] = {0

Cocos2d-x3.0模版容器详解之一:cocos2d::Vector<T>

一世执手 提交于 2019-11-28 23:48:05
1.概述 版本:v3.0 beta 语言:C++ 定义在 “COCOS2DX_ROOT/cocos/base” 路径下的 " CCVector.h " 的头文件中。 ? 1 template < class T> class CC_DLL Vector; cocos2d::Vector<T> 是一个封装了动态大小的数组的顺序型容器。 它的元素是连续存储的,cocos2d::Vector<T> 的存储是自动处理的。其内部的数据结构实现实际上是STL标准的顺序型容器 std::vector 。 在 Cocos2d-x v3.0 beta 之前,存在另一个顺序性容器 cocos2d::CCArray ,这将会被弃用。 我们很细致地设计了 cocos2d::Vector<T> 容器作为 cocos2d::CCArray 的替代品,所以请使用 cocos2d::Vector<T> 代替 cocos2d::CCArray。 cocos2d::Vector<T> 常用操作的复杂度(效率)如下: 随机访问 - 常量 0(1) 在末尾插入或者移除元素 - 分摊常量 0(1) 插入或移除元素 - cocos2d::Vector<T> 长度线性相关 O(n) 2.模版参数 T - 元素类型. -T 必须是一个指向 cocos2d::Object 子类对象的指针。不能是其他数据类型或者原生类型

STL之vector

旧街凉风 提交于 2019-11-28 22:58:48
初始化vector对象的方式: vector v1; //未指定初始化方式,因此采用默认方式初始化v1,即长度为0的空容器; vector v2; //定义对象v2,作为v1的副本; vector v3(n,i);//定义对象v3,它包含n个数值为i的元素; vector v4(n); //定义对象v4,v4中包含n个元素,每个元素的值均是0; 其中:T可以为int,float,char,char*(存放字符串或字符指针)。一般用于int动态数值时,定义vector v1,用v1来保存数值元素。 vector的常用函数:只需要包含#include 即可 empty():判断vector向量是否为为空,为空时返回真,否则返回假; begin():返回向量(数组)的首元素的地址; end():返回向量(数组)的末尾元素的下一个元素(不存在的元素)的地址; clear():清空向量; front():返回向量(数组)的第一个元素的数据; back():返回向量(数组)的最后一个元素的数据; size():返回向量中元素的个数(即数组长度) push_back(数据i):将数据插入到向量的尾部; pop_back():删除向量尾部的数据 参考资料: https://blog.csdn.net/ye1223/article/details/79772771 来源: https://www

常用算法

非 Y 不嫁゛ 提交于 2019-11-28 21:36:13
sort默认从小到大 排序普通类型 bool complare(int a, int b) { return a < b; // 从小到大, 形参顺序不变, 看大小号判断排序顺序 return a > b; // 从大到小 } int a[10] = { 1, 7, 4, 0, 9, 4, 8, 8, 2, 4 }; sort(a, a + 10); // 数组长度 sort(a, a + 10, complare); 排序vector bool complare(int a, int b) { return a > b; } vector<int> vt; for (int i = 0; i < 10; i++) { vt.push_back(static_cast<int>(rand() % 10)); } for (auto v : vt) cout << v << " "; cout << endl; sort(vt.begin(), vt.end(), complare); for (auto v : vt) cout << v << " "; cout << endl; swap交换两个对象的值 myClass c1, c2; swap(c1, c2); 最值 int a = 1, b = 2; cout << max(a, b) << ' ' << endl;

c++ STL 【更新...】

丶灬走出姿态 提交于 2019-11-28 19:15:52
STL STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些 模板类和函数可以实现多种流行和常用的算法和数据结构 核心包括以下三个组件 : 容器(Containers) 容器是用来 管理某一类对象的集合 。C++ 提供了各种不同类型的容器,比如 deque、list、vector、map 等。 算法(Algorithms) 算法作用于容器。它们 提供了执行各种操作的方式 ,包括对容器内容执行初始化、排序、搜索和转换等操作。 迭代器(iterators) 迭代器用于 遍历对象集合的元素 。这些集合可能是容器,也可能是容器的子集。 这三个组件都带 有丰富的预定义函数 ,帮助我们通过简单的方式处理复杂的任务 举例:向量容器【与数组十分相似,唯一不同的是,向量在需要扩展大小的时候,会自动处理它自己的存储需求】 #include <iostream> #include <vector> using namespace std; int main() { // 创建一个向量存储 int vector<int> vec; int i; // 显示 vec 的原始大小 cout << "vector size = " << vec.size() << endl; // 推入 5 个值到向量中 for(i = 0; i < 5; i++){ vec.push_back

Vector使用

前提是你 提交于 2019-11-28 18:18:14
https://www.cnblogs.com/linuxAndMcu/p/10259630.html 一、vector介绍: vector(向量): 是一种序列式容器,事实上和数组差不多,但它比数组更优越。一般来说数组不能动态拓展,因此在程序运行的时候不是浪费内存,就是造成越界。而vector正好弥补了这个缺陷,它的特征是相当于可分配拓展的数组(动态数组),它的随机访问快,在中间插入和删除慢,但在末端插入和删除快。 回到顶部 二、用法 1、头文件 #include <vector> //vector属于std命名域的,因此需要通过命名限定,例如using std::vector; 2、定义及初始化 vector<int> a; //定义一个int类型的向量a vector<int> a(10); //定义一个int类型的向量a,并设置初始大小为10 vector<int> a(10, 1); //定义一个int类型的向量a,并设置初始大小为10且初始值都为1 vector<int> b(a); //定义并用向量a初始化向量b vector<int> b(a.begin(), a.begin()+3); //将a向量中从第0个到第2个(共3个)作为向量b的初始值 除此之外,还可以直接使用数组来初始化向量: int n[] = {1, 2, 3, 4, 5} ; vector<int

LeetCode 刷题笔记——递归与回溯的理解

空扰寡人 提交于 2019-11-28 17:44:11
LeetCode 刷题笔记——递归与回溯的理解 马上就要入职了。在入职之前受师兄点拨,疯狂刷 LeetCode ,整个痛并快乐着的过程中,在算法和数据结构方面受益良多。 在刷题过程中,很快的就遇到了闻名已久的 递归 (Recursive) 。首次遇到递归,是 LeetCode 的第 17 题: Letter Combinations of a Phone Number 。解这道题的时候,虽然之前没有专门学过,但最先就想到了递归的解法,无师自通的把这个题解开了还让我得意了许久~ 不过后来又遇到了第 22 题: Generate Parentheses ,本来以为是一个很简单的,可以无脑用递归解决的问题,直接废了我一个上午…… 后来网上查了一下,它们说要用 回溯 (Backtrack) 的方法理解并解答。一看代码,形式同样也是反复调用函数自身,感觉这和递归并没什么区别啊? 于是多做了几道关于递归和回溯的问题,并在网上找了一些大神们的言论,自己对 递归 和 回溯 进行一些总结如下。 参考地址: 题库: LeetCode 递归与回溯的区别解释: 《关于递归与回溯比较通俗的方法》 《回溯和递归区别》 答题思路与源码 《leetcode 46. Permutations-全排列|回溯|递归|非递归》 《刷题笔记3(关于Permutation需要知道的事)》 《以Generate