vector数组

1.Vector数组可以认为是大小的数组。

2.它可以实现排序,函数是sort(v.begin(),v.end() 。

3.它可以实现二分查找功能,函数是lower_bound(v.begin(),v.end(),x)。查找的是值x。返回的是查找值的指针。如果查找返回的是指针v.end()或者发现*it!=x那么容器里没有x这个数。

实例代码:

 1 #include <cstdio>
 2 #include <iostream>
 3 #include <cstring>
 4 #include <vector>
 5 #include <string>
 6 #include <algorithm>
 7 #include <cmath>
 8 using namespace std;
 9 int n,m;
10 int main(){
11     vector<int> v;
12     int Case = 0;
13     while(scanf("%d%d",&n,&m) != EOF &&(n || m)){
14         v.clear();
15         int x;
16         for(int i = 0 ; i < n ; i++){
17             scanf("%d",&x);
18             v.push_back(x);
19         }
20         sort(v.begin(),v.end());
21         printf("CASE# %d:\n",++Case);
22         for(int i = 0 ; i < m ; i++){
23             scanf("%d",&x);
24             vector<int>::iterator it = lower_bound(v.begin(),v.end(),x);
25             if(it == v.end())
26                 printf("%d not found\n",x);
27             else{
28                 if(*it == x)
29                     printf("%d found at %d\n",x,it - v.begin() + 1);
30                 else
31                     printf("%d not found\n",x);
32             }
33         }
34     }
35     return 0;
36 }

时间: 2024-12-15 06:56:37

vector数组的相关文章

妙用Pixel bender执行复杂运算/普通数据运算 传递Vector数组

最近发现pixel bender有两个特殊点: 1.Input Image4,不单单可以用BitmapData来初始化,也可以用Vector.<Number>初始化. 2.ShaderJob,可以使用Vector.<Number>接收pb的运算结果,同时,这个输出结果不限于[0-1].结果会从上往下一行一行的把每个像素的各通道信息填入到Vector中 基于这两点,就可以发现,可以把复杂的数学运算交给pb.尤其是类似于图像这样二维的信息,例如3d建模中,水面波动的计算. AS代码:

Java源代码分析之Vector数组

Vector源码分析 每个Java程序员应该的特性 可变长数组(grow or shrink) 能够使用索引获取值(accessed using an integer index) 多线程环境下线程安全 类图 package java.util; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.function.UnaryOperator; /* vector 通过

c++中的array数组和vector数组

我觉得实验一下会记得比较牢,话不多直接上代码. 下面是array数组,感觉用的不多. //cpp 风格数组 array #include <iostream> #include <array> #include <vector> using namespace std; int main() { array<int , 6> myint = {1 , 2 , 34, 45 , 0 , -2}; for(int i = 0 ; i < myint.siz

vector数组用法及举例

vector详解 1.调用vector的头文件 注意:c++编程中填写这个头文件 2.vector的用法 注意:大概来讲,vector就是一个变长数组,与a[]这种普通数组不同的是,他不用定义多长,是根据用户的用法变化的,同时它的用法及方法也与普通数组不同 3.vector的存取方法及特殊 注意:vector的存取与栈相同(即一种无盖有底的“洞”,从顶端存入,从顶端取出): 3.vector数据的读取及其他方法 注意:iterator是一种迭代器,即一种读取器,其功能类似for循环:利用iter

STL之vector,数组线性容器array,list容器,算法find,find_if,bind1st,仿函数

 1.STL(Standard Template Library,是用泛型技术来设计完成的实例)的概念与组成 Iterator(迭代器) Container(容器) Algorithm(算法) Adaptors(配接器) STL的六大组件分别是: 容器(Container) 算法(Algorithm) 迭代器(Iterator) 仿函数(Function object) 适配器(Adapter) 空间配置器(allocator):只能分配内存等 2.容器与算法 案例如下: #include<

动态创建二维vector数组+指针与引用的区别

二维vectorvector<vector <int> > ivec(m ,vector<int>(n));    //m*n的二维vector 动态创建m*n的二维vector方法一:vector<vector <int> > ivec;ivec.resize(m);for(int i=0;i<m;i++) ivec[i].resize(n); 方法二:vector<vector <int> > ivec;ivec

leetcode第27题:删除vector数组的元素(array)

题目: Given an array and a value, remove all instances of that value in place and return the new length. The order of elements can be changed. It doesn't matter what you leave beyond the new length. 这个比较简单,掌握vector的用法即可. 1 int removeElement(vector<int>

vector数组的删除,CallFuncN的使用

void CTaskMode::createSpr(int taskId,Coordinate pos,int offiset) { if(taskId < TASK_SPECIAL_SEGMENT) { Sprite * sprAction = Sprite::create("cell2.png",Rect((taskId%IMG_X_CNT)*CELL_WIDTH,(taskId/IMG_X_CNT)*CELL_HEIGHT,CELL_WIDTH,CELL_HEIGHT));

vector数组越界 KMP

#include<string> #include<stdio.h> #include<iostream> #include<vector> using namespace std; string s1,s2; vector<int>f; void init() { f[0] = 0; f[1] = 0; int n = s2.size();//n = f.size()后面f[i+1]会越界 for(int i=1,j=0;i<n;i++)