小编2r2*_*r2w的帖子

在哪种情况下应该使用匿名枚举?

在c和c ++中enum都可以用tag定义

enum e_smth {
    smth_one,
    smth_two,
    smth_err
};
Run Code Online (Sandbox Code Playgroud)

或没有标签

enum {
    smth_one,
    smth_two,
    smth_err
};
Run Code Online (Sandbox Code Playgroud)

如果它是用tag定义的,那么switch在c和c ++ 中的语句中都是有意义的:

e_smth some_var;
....//do some stuff with some_var
switch (some_var)
{
case smth_one:
break;
case smth_two:
break;
}
Run Code Online (Sandbox Code Playgroud)

-Wswitch如果用gcc或g ++编译它会产生 警告.

它在c ++中的函数声明和变量初始化中是有意义的:

e_smth var;
var=99;
Run Code Online (Sandbox Code Playgroud)

-fpermissive如果用g ++编译会产生错误.

带或不带标记的两种类型都可以用作#define没有参数的一个文件宏.


更新

可以用作#define没有参数的一个文件宏

意思是:而不是在文件范围内写入#define MAX 1000文件并将MAX添加到全局使用enum { MAX=1000 }


那么匿名枚举,我发现只有一个用例:定义就像使用typedef enum { a,b,c } some_t;带标签的枚举一样

题:

如果我还没有描述所有合理的用例,应该使用匿名枚举的内容?

c c++

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

有没有办法链接到没有锚点的页面上的特定段落?

我正在尝试用表单填写教程写一篇文章.有很多来源,但源页面不提供页面上的锚点.


所以我的问题是,如何在html页面上链接到具体的文本段落?

有可能吗?

网址中是否有任何JavaScript技巧可以实现这一目标?


编辑:

我需要链接到外部源的特定段落.例如与话开始一段"海军追踪它的起源到"关于维基百科的页面

html anchor focus hyperlink

6
推荐指数
2
解决办法
2994
查看次数

如何执行高效的交集操作?

我有一些名为tokens的元素.它们中的每一个都是某种类型的关联容器(不一定是std容器之一).我有一些存储令牌的容器存储(不一定是std容器之一).存储 是一组令牌.
我需要能够通过指定的比较器指定键对令牌值上的令牌(存储)集执行交集操作.作为该操作的结果,我想获得另一组令牌(另一个存储).

伪代码中的用例:

  if ( (storage0[key1]==storage1[key1])[key2]<storage1[key2] )
    ...
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种有效的算法.
注意:我有几十个令牌.
问题:
1)如何组织存储
2)如何实现交叉口运营?

更新一些解释:
token是一组(键,值)对.存储是一组(键,值)对

我需要交叉(P1,K1,P2,K2,cmp)
P1 - 第一个存储
P2 - 第二个存储
K1 - 第一个存储的
密钥K2 - 第二个存储的密钥
cmp - 比较函数,如cmp(value,value),返回true或假

相交应该遍历P1的每个元素e1,并通过P2的每个元素e2并提取满足cmp的元素((键,值)对)(e1 [K1],e2 [K2])

c++ algorithm

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

有没有办法用va_args参数包装函数?

有一个功能:

void some_function(int id,...);
Run Code Online (Sandbox Code Playgroud)

问题:有没有办法包装这个功能?这意味着得到这样的东西:

void wrapped_some_function(int id,...)
{
   //do smth
   some_function(id,...);
}
Run Code Online (Sandbox Code Playgroud)

c

5
推荐指数
2
解决办法
794
查看次数

标签 统计

c ×2

c++ ×2

algorithm ×1

anchor ×1

focus ×1

html ×1

hyperlink ×1