小编iav*_*avr的帖子

单元素的parethesized表达式/元组与括号的常见用法

对不起,如果这是微不足道的 - 我对swift很新,实际上我只看了几分钟的语言指南+参考.

据我所知,括号表达式(2,3)用于构造元组,并且(2)是类型的单元素元组(Int).

但是,如果(2+4)在表达式中使用括号,会发生什么(2+4)*5?这仍然是一个类型的元组(Int)乘以Int

tuples parentheses swift

3
推荐指数
1
解决办法
288
查看次数

可变参数模板模板,再次

我已经看到例如一个关于同一问题的相关问题,但我有一个不同的问题,我认为无法以任何其他方式解决。

这是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)

其中 …

c++ variadic-templates c++11

2
推荐指数
1
解决办法
811
查看次数

非类型(引用)模板参数和链接

在下面的,

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
  • 谁是对的?GCC还是铿锵?

c++ templates linkage non-type c++11

2
推荐指数
1
解决办法
1142
查看次数

在C++中使用连接键而不是嵌套Map Container的优点和缺点

我有一个项目来研究用于存储数据的当前容器的替代方案,以使其更有效.

目前的设计涉及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通过转换intstring和连接它们.然后将此密钥提供给amap<ConcatenatedKey, Data>
  • 使用Boost.MultiIndex.即使这似乎是我放弃这个选项的最佳选择,因为我发现它有点复杂.

提供一些必要的信息.此Container通常用于检索最终的嵌套数据,这就是我使用连接键方法的结论.我的问题基本上是,使用这种串联字符串有什么警告吗?这是一个糟糕的设计还是我们应该避免的事情?

根据我的理解,这将改善查找时间,仍保持对数但执行一次而不是四次查找,因此它似乎是一种改进.

c++ containers stl

1
推荐指数
1
解决办法
1435
查看次数