MCPcopy Create free account
hub / github.com/comaps/comaps / NaiveSample

Function NaiveSample

libs/editor/changeset_wrapper.cpp:81–106  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

79}
80
81std::vector<m2::PointD> NaiveSample(std::vector<m2::PointD> const & source, size_t count)
82{
83 count = std::min(count, source.size());
84 std::vector<m2::PointD> result;
85 result.reserve(count);
86 std::vector<size_t> indexes;
87 indexes.reserve(count);
88
89 std::random_device r;
90 std::minstd_rand engine(r());
91 std::uniform_int_distribution<size_t> distrib(0, source.size());
92
93 while (count--)
94 {
95 size_t index;
96 do
97 {
98 index = distrib(engine);
99 }
100 while (find(begin(indexes), end(indexes), index) != end(indexes));
101 result.push_back(source[index]);
102 indexes.push_back(index);
103 }
104
105 return result;
106}
107} // namespace
108
109namespace pugi

Callers 1

Calls 6

findFunction · 0.85
beginFunction · 0.50
endFunction · 0.50
sizeMethod · 0.45
reserveMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected