对不起,如果这是微不足道的 - 我对swift很新,实际上我只看了几分钟的语言指南+参考.
据我所知,括号表达式(2,3)用于构造元组,并且(2)是类型的单元素元组(Int).
但是,如果(2+4)在表达式中使用括号,会发生什么(2+4)*5?这仍然是一个类型的元组(Int)乘以Int?
我已经看到例如一个关于同一问题的相关问题,但我有一个不同的问题,我认为无法以任何其他方式解决。
这是any计算模板参数包表示(类型列表)中的任何元素的一元谓词 是否F为真的函数P:
template <template <typename...> class F, typename P>
struct any;
template <
template <typename...> class F,
template <typename...> class C, typename E, typename... En
>
struct any <F, C <E, En...> > :
public _if <F <E>{}, _true, any <F, C <En...> > > { };
template <template <typename...> class F, template <typename...> class C>
struct any <F, C <> > : public _false { };
Run Code Online (Sandbox Code Playgroud)
其中 …
在下面的,
int i{3};
const int j{3};
extern const int k{3};
template <typename T, T&>
void f() {}
int main()
{
f<int, i>(); // OK
f<int const, j>(); // not valid template argument: 'j' has not external linkage
f<int const, k>(); // OK
}
Run Code Online (Sandbox Code Playgroud)
GCC给出了使用jas模板参数的错误,而clang编译得很好.
i,j?const/非之间存在差异const?我有一个项目来研究用于存储数据的当前容器的替代方案,以使其更有效.
目前的设计涉及4个嵌套地图
map< string, map< string, map< int, map< string, string> > > >
让名称每个数据字段Company,Department,ID_of_employee,Name
此刻的时间复杂度检索给雇员的姓名Company,Dept,ID是Ø(日志ñ)和更精确地涉及3个查找.
现在的空间复杂性不是问题.
我最初的选择是以下:
Company,Dept,Id然后用这个嵌套对作为关键地图.这似乎不容易阅读.tuple或一个struct基本上我读的并没有那么不同.在创建后new struct EmployeeKey,将包含字段Company,Dept,ID.我可以用它作为Key一个map.(我想我必须编写自定义比较和少于运算符).company+Dept+ID通过转换int到string和连接它们.然后将此密钥提供给amap<ConcatenatedKey, Data>提供一些必要的信息.此Container通常用于检索最终的嵌套数据,这就是我使用连接键方法的结论.我的问题基本上是,使用这种串联字符串有什么警告吗?这是一个糟糕的设计还是我们应该避免的事情?
根据我的理解,这将改善查找时间,仍保持对数但执行一次而不是四次查找,因此它似乎是一种改进.
c++ ×3
c++11 ×2
containers ×1
linkage ×1
non-type ×1
parentheses ×1
stl ×1
swift ×1
templates ×1
tuples ×1