在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;带标签的枚举一样
如果我还没有描述所有合理的用例,应该使用匿名枚举的内容?
我正在尝试用表单填写教程写一篇文章.有很多来源,但源页面不提供页面上的锚点.
所以我的问题是,如何在html页面上链接到具体的文本段落?
有可能吗?
网址中是否有任何JavaScript技巧可以实现这一目标?
编辑:
我需要链接到外部源的特定段落.例如与话开始一段"海军追踪它的起源到"关于此维基百科的页面
我有一些名为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])
有一个功能:
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)