dl
dl
base
dl_range_find.h
浏览该文件的文档.
1
12
#pragma once
13
14
#include "
base/dl_vector2.h
"
15
17
namespace
dl::Find
18
{
23
template
<
typename
T,
typename
V>
24
size_t
FirstIndex
(
const
T
& container,
const
V
& v)
25
{
26
for
(
size_t
i = 0; i < container.size(); ++i)
27
{
28
if
(container[i] == v)
29
{
30
return
i;
31
}
32
}
33
return
-1;
34
}
35
40
//template<typename T, typename V>
41
//SizeT FirstIndex(const Vector2<T, size_t>& container, const V& v)
42
//{
43
// for (size_t j = 0; j < container.GetHeight(); ++j)
44
// {
45
// for (size_t i = 0; i < container.GetWidth(); ++i)
46
// {
47
// if (container.Get(j, i) == v)
48
// {
49
// return { i, j };
50
// }
51
// }
52
// }
53
// return { -1_zu, -1_zu };
54
//}
55
60
template
<
typename
C,
typename
F>
61
auto
FirstYes
(
C
& container,
F
func)
62
{
63
for
(
auto
& iter : container)
64
{
65
if
(func(iter))
66
{
67
return
&iter;
68
}
69
}
70
using
V
= std::decay_t<
decltype
(container)>;
71
using
T
=
typename
V::value_type;
72
return
(
T
*)
nullptr
;
73
}
74
75
}
dl_vector2.h
2维vector
dl::Find
查找算法
定义
dl_range_find.h:18
dl::Find::FirstIndex
size_t FirstIndex(const T &container, const V &v)
find,返回下标
定义
dl_range_find.h:24
dl::Find::FirstYes
auto FirstYes(C &container, F func)
find,返回下标
定义
dl_range_find.h:61
dl::KeyCode::C
@ C
定义
dl_input.h:104
dl::KeyCode::V
@ V
定义
dl_input.h:123
dl::KeyCode::F
@ F
定义
dl_input.h:107
dl::KeyCode::T
@ T
定义
dl_input.h:121
制作者
1.13.1