I have an interval and some sites,I want to judge whether each of the interval are in sites,and finally count the number.like the following
using BenchmarkTools
intervals=10650:10699
sites=[10673,10655,10662,10670,10650,10691,10694,10689,10660,10667,10679]
function m(intervals,sites)
b=Bool[]
for i in intervals
if i in sites
push!(b,true)
else
push!(b,false)
end
end
sum(b)
end
julia> @btime m($intervals,$sites)
566.754 ns (4 allocations: 352 bytes)
11
I got an easier way.But it was slower.
julia> @btime length(intersect($intervals,$sites))
1.979 Ξs (21 allocations: 3.48 KiB)
11
Are there any easier ways (not using for loop as well as push!)?Thanks for helping me!