model checking
yisun03
这个作者很懒,什么都没留下…
展开
-
C++ static_cast、dynamic_cast、const_cast和reinterpret_cast(四种类型转换运算符)
为了使潜在风险更加细化,使问题追溯更加方便,使书写格式更加规范,C++ 对类型转换进行了分类,并新增了四个关键字来予以支持,它们分别是:使用格式统一为xxx_cast<new_type>(expr).new_type为目标类型,data为要转的表达式。注意:1、static_cast不能用于无关类型之间的转换,因为无关类型之间的转换是有风险的。比如:int转double可以,但是int* 转 double* 就不行,double转int虽然可以,因为double.原创 2020-05-25 10:42:07 · 296 阅读 · 0 评论 -
c++中explicit关键字的介绍
1、C++中的关键字explicit主要是用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。类构造函数默认情况下声明为隐式的即implicit,隐式转换即是可以由单个实参来调用的构造函数定义了一个从形参类型到该类类型的隐式转换。编译器在试图编译某一条语句时,如果某一函数的参数类型不匹配,编译器就会尝试进行隐式转换,如果隐式转换后能正确编译,编译器就会继续执行编译过程,否则报错。2、当类的声明和定义分别在两个文件中时,explicit只能写在在声明中,不原创 2020-05-18 18:38:48 · 359 阅读 · 1 评论 -
c++中std::move()的用法
std::move函数可以以非常简单的方式将左值引用转换为右值引用。通过std::move,可以避免不必要的拷贝操作。std::move是为性能而生。std::move是将对象的状态或者所有权从一个对象转移到另一个对象,只是转移,没有内存的搬迁或者内存拷贝。如string类在赋值或者拷贝构造函数中会声明char数组来存放数据,然后把原string中的 char 数组被析构函数释放,如果a是一个临时变量,则上面的拷贝,析构就是多余的,完全可以把临时变量a中的数据直接 “转移” 到新的变量下面即转载 2020-05-18 18:14:33 · 1302 阅读 · 0 评论 -
一些操作符的含义
要是不知道操作符的含义可以对照一下,但是不同语言会有不一样的,但大多都差不多含义。这是ocaml语言的操作符含义:+整型加法- 整型减法~-或- 整型负* 整型乘法/ 整型除法,若除零则会raise一个Division_by_zeromod 整型同余,若第二个参数为0则会raise一个Division_by_zeroland 整型的逐位逻辑与lor 整型的逐位或lxor 整型的逐位异或lsl 整型的逻辑左移lsr 整型的逻辑右移asr ...原创 2020-05-17 16:25:51 · 444 阅读 · 0 评论 -
c++中如何动态生成变量名
这个问题也困扰了我好久,要是真的去动态的生成x0,x1,x2........是真的不可能。但是会有办法做到相似效果。比如想要做到如下:for(int i = 0; i < _vector.size(); i++) //_vector是一个vector对象{ auto v = _vector.at(i); auto xi = get_name(v); //想要在这个循环中生成x0,x1,x2,x3........}一个最直观最简单的办法就是利用数组。int x[_v原创 2020-05-16 17:46:06 · 7928 阅读 · 3 评论 -
ubuntu安装flex和bison(附有flex-2.6.4.tar.gz)
bison可以直接用命令装:sudo apt-get install bisonflex建议用源码装:下载flex-2.6.4.tar.gz后解压:sudo tar -zxvf flex-2.6.4.tar.gz进入解压目录:cd flex-2.6.4再运行命令:./configuremakemake installflex-2.6.4.tar.gz下载链接永久有效提取码: ah24...原创 2020-05-10 13:46:06 · 4647 阅读 · 4 评论 -
c++中string的截取、替换和查找操作
1. 截取子串s.substr(pos, n) 截取s中从pos开始(包括0)的n个字符的子串,并返回s.substr(pos) 截取s中从从pos开始(包括0)到末尾的所有字符的子串,并返回2. 替换子串s.replace(pos, n, s1) 用s1替换s中从pos开始(包括0)的n个字符的子串3. 查找子串s.find(s1) 查找s中第一次出现s1的位置,并返回(包括0)s.rfind(s1) 查找s中最后次出现s1的位置,并返回(包括0)s.find_first...原创 2020-05-09 10:41:39 · 297 阅读 · 0 评论 -
java中map的computeIfAbsent()函数
一、HashMap computeIfAbsent(Key, Function) 的这个方法,是被用来计算给定key,给定映射函数的的值。如果,key之前并没有映射到一个值,或者映射到null,那么,就用计算出来的值放到这个hashmap中。 如果这个映射函数返回null,那么不添加任何k-v对 如果在计算过程中,抛出异常,那么不添加任何k-v对 在计算过程中,无法修改此map 方法会抛出ConcurrentModificationException ,如果在计算过程中,...原创 2020-05-09 09:43:30 · 1780 阅读 · 0 评论 -
c++队列queue的基本操作
back() 返回最后一个元素empty() 如果队列空则返回真front() 返回第一个元素pop() 删除第一个元素push() 在末尾加入一个元素size() 返回队列中元素的个数原创 2020-05-09 09:13:41 · 612 阅读 · 0 评论 -
java中队列queue的阻塞操作
add() 增加一个元索如果队列已满,则抛出一个IIIegaISlabEepeplian异常remove() 移除并返回队列头部的元素如果队列为空,则抛出一个NoSuchElementException异常element() 返回队列头部的元素如果队列为空,则抛出一个NoSuchElementException异常offer() 添加一个元素并返回true如果队列已满,则返回falsep...原创 2020-05-09 09:11:44 · 466 阅读 · 0 评论 -
c++中比较两个std::string对象是否相等
在java中比较两个string对象是否相等可以直接调用函数equals()if(name1.equals(name2)) //name的声明忽略{ print("相等");}而在c++中也很简单,用"=="就可以实现if(name1 == name2){ std::cout<<"相等"<<std::endl;}...原创 2020-05-08 16:15:23 · 11021 阅读 · 0 评论 -
c++中将一个vector对象插入另一个vector中
c++中的vector的插入操作有几个方法:vector.insert(pos,elem); //在pos位置插入一个elem元素的拷贝,返回新数据的位置。vector.insert(pos,n,elem); //在pos位置插入n个elem数据,无返回值。vector.insert(pos,beg,end); //在pos位置插入[beg,end)区间的数据,无返回值...原创 2020-05-05 19:33:39 · 28022 阅读 · 1 评论 -
c++中的函数指针(指向函数的指针)
1、函数指针基础函数指针指向的是函数而非对象,和其他指针一样,函数指针指向的是某种特定类型。函数的类型由它的返回类型和形参类型共同决定,与函数名无关。例如://比较两个string对象的长度bool lengthCompare(const string &, const string &);该函数的类型是bool(const string &, const...原创 2020-04-08 22:42:32 · 5391 阅读 · 0 评论 -
Z3求解器基本指南
这是博主 alu_xd 翻译的官网上的z3手册,但是不全面,想看全面的手册见官网手册:z3手册z3是由微软公司开发的一个优秀的SMT求解器(也就定理证明器),它能够检查逻辑表达式的可满足性。使用方式z3是一个底层的工具,它最好是作为一个组件应用到其它需要求解逻辑公式的工具中。为了方便使用,z3提供了很多的API,这些api支持的语言有C, .NET, and OCaml。当然,z3也可...转载 2019-10-22 13:30:25 · 5837 阅读 · 3 评论 -
两个被广泛使用的Model Checking工具
转载自:https://blog.csdn.net/qysh123/article/details/7378753这两个工具是BLAST和SLAM,都是针对c语言的model checker。大家看看原文,原文中的链接让你更了解这两个工具。最近看论文的时候,发现和软件分析、测试及模型检验相关的论文,都会引用两个Model Checking工具,分别是:BLAST: http://mt...转载 2019-09-23 17:05:21 · 1967 阅读 · 0 评论