R语言 判断vector 元素的个数

Python014

R语言 判断vector 元素的个数,第1张

先对两个vector中的元素都按从大到小的顺序排序

然后定义两个iterator,分别指向两个vector的头部

vector<int>first

vector<int>second

vector<int>::iterator poiFir

vector<int>::iterator poiSec

poiFir=first.begin()

poiSec=second.begin()

然后循环直到poiFir指向first的尾部或poiSec指向second的尾部

每次循环的内部:

判断*poiFir和*poiSec的大小

(1)若相等,则为相同的元素,记录此值(可以另建一个vector<int>save用于存放相等的值,save.push_back(*poiFir)),再将poiFir++;poiSec++;

(2)若*poiFir大于*poiSec的值,则将poiSec++;

(3)若*poiFir小于*poiSec的值,则将poiFir++;

循环结束后,save中存储的值即为两个vector中相等的值

时间效率为两个vector中元素个数的和

上图是一个简单的例子,b为一矩阵,现在想统计第二列中数值等于1的元素个数,首先做一个逻辑判断,即b[,2]==1,得到一个由布尔变量true和false组成的向量

此时只需要知道true的数量,由于对布尔变量求和,true转化为1,false转化为0,故对该向量求和即可得到true的数量,即b[,2]中等于1的数量。