我正在查看std :: unordered_map并看到如果我想使用字符串作为键,我必须创建一个包含仿函数的类.
出于好奇,我想知道是否可以使用lambda来代替这个.
这是工作原创:
struct hf
{
size_t operator()(string const& key) const
{
return key[0]; // some bogus simplistic hash. :)
}
}
std::unordered_map<string const, int, hf> m = {{ "a", 1 }};
Run Code Online (Sandbox Code Playgroud)
这是我的尝试:
std::unordered_map<string const, int, [](string const& key) ->size_t {return key[0];}> m = {{ "a", 1 }};
Run Code Online (Sandbox Code Playgroud)
失败时出现以下错误:
exec.cpp: In lambda function:
exec.cpp:44:77: error: ‘key’ cannot appear in a constant-expression
exec.cpp:44:82: error: an array reference cannot appear in a constant-expression
exec.cpp: At global scope:
exec.cpp:44:86: error: template …Run Code Online (Sandbox Code Playgroud) 我有这样的代码:
<div class="lighter">
<form method="get" action="http://www.google.pl" id="search">
<span>
<input id="button_search" type="image" src="images/search.png" id="button_search"/>
</span>
<span>
<input type="text" class="search rounded" placeholder="Search...">
</span>
<div class= "list_search">
<ul>
<li class="search_link"><a href="">Search all of Movies</a></li>
<li class="search_link"><a href="">Advanced Search</a></li>
</ul>
</div>
</form>
</div>
Run Code Online (Sandbox Code Playgroud)
是否可以简单地使用css来产生这样的效果:当输入type ="text"处于焦点时,list_search会出现?如果有,怎么样?
非常感谢您的帮助