小编Sha*_*mbo的帖子

整数对的哈希函数的错误

我有一个unordered_map成员的以下类,并定义了一个哈希函数pair<int,int>

class abc
{public :
    unordered_map < pair<int,int> , int > rules ;
    unsigned nodes;
    unsigned packet ;     
};

namespace std {
template <>
    class hash < std::pair< int,int> >{
    public :
        size_t operator()(const pair< int, int> &x ) const
        {
            size_t h =   std::hash<int>()(x.first) ^ std::hash<int>()(x.second);
            return  h ;
        }
    };
}
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

error: invalid use of incomplete type ‘struct std::hash<std::pair<int, int> >

error: declaration of ‘struct std::hash<std::pair<int, int> >

error: type ‘std::__detail::_Hashtable_ebo_helper<1, std::hash<std::pair<int, int> >, …
Run Code Online (Sandbox Code Playgroud)

c++ hash stl unordered-map c++11

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

消除forall使用不饱和度

我们知道,我们可以通过以下方式证明一个定理的有效性:

let Demorgan(x, y) = formula1(x,y) iff formula2(x,y)
assert ( forall (x,y) . Demorgan(x,y) )
Run Code Online (Sandbox Code Playgroud)

或者,我们可以通过以下方式消除forall量词:

let Demorgan(x, y) = formula1(x,y) iff formula2(x,y)
( assert (not  Demorgan(x,y) ) )
Run Code Online (Sandbox Code Playgroud)

因此,如果它返回不饱和,那么我们可以说上面的公式是有效的.

现在我想用这个想法从以下断言中消除forall量词:

assert ( exists x1,x2,x3 st .( forall y . formula1(x1,y) iff
                                          formula2(x2,y) iff
                                          formula3(x3,y) ) )
Run Code Online (Sandbox Code Playgroud)

那么在Z3(使用C++ API或SMT-LIB2.0)中有什么办法可以断言如下:

assert (exists x1,x2,x3 st. ( and ((not ( formula1(x1,y) iff formula2(x2,y) )) == unsat)
                                  ((not ( formula2(x2,y) iff formula3(x3,y) )) == unsat))) 
Run Code Online (Sandbox Code Playgroud)

z3

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

注释空行

在使用 注释 vs-code 中的多行时ctrl + /,有什么方法也可以注释选择中的空行。

例如,如果我有以下代码,

def A():
    line1

    line2
Run Code Online (Sandbox Code Playgroud)

当所有这些行都被选中并使用 进行评论时ctrl + /,我希望空白行也得到评论,比如

# def A():
#     line1
#      
#     line2
Run Code Online (Sandbox Code Playgroud)

代替:

# def A():
#     line1

#     line2
Run Code Online (Sandbox Code Playgroud)

comments visual-studio-code

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

C++ API 中上下文的使用

我有以下程序,它将字符串转换为布尔公式 ( string_to_formula),我在其中定义expr_vector b(c)。这段代码有效,但我无法推理context. a 的作用是什么context?有什么方法可以b只定义一次变量吗?为什么我们需要将 发送context给函数?这段代码可以写得更简洁吗?

int main() { try {

  context c;
  expr form(c);
  form  = string_to_formula("x1x00xx011",c);
  expr form1(c);
  form1  = string_to_formula("1100x1x0",c);

  solver s(c);
  s.add(form && form1);
  s.check();
  model m = s.get_model();
  cout << m << "\n";
} 

expr string_to_formula(string str, context& c )
{
 expr_vector b(c) ;
 for ( unsigned i = 0; i < str.length(); i++)
 { stringstream b_name;
   b_name << "b_" << i;
   b.push_back(c.bool_const(b_name.str().c_str())); …
Run Code Online (Sandbox Code Playgroud)

z3

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

用背景颜色慢慢改变div的内容

我有div 以下css条目

#results { 
background: #dddada; 
color: 000000; 
cursor: pointer; 
}
#results:hover { 
background: #3d91b8; 
color: #ffffff; 
}
Run Code Online (Sandbox Code Playgroud)

如何缓慢地改变其内容(文本),而不是让整个div消失然后出现使用fadeInfadeOut.

html jquery callback fadeout fadein

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

标签 统计

z3 ×2

c++ ×1

c++11 ×1

callback ×1

comments ×1

fadein ×1

fadeout ×1

hash ×1

html ×1

jquery ×1

stl ×1

unordered-map ×1

visual-studio-code ×1