拷贝

vue-router参数query改变页面url不改变及不更新数据

百般思念 提交于 2020-02-17 09:20:13
路由本身有query参数,但是我点击更新了query,也push了,页面url不改变,这个时候其实用到了对象的拷贝,你需要对query对象做拷贝,对象的深拷贝和浅拷贝 let query = this.$router.history.current.query; let path = this.$router.history.current.path; //对象的拷贝 let newQuery = JSON.parse(JSON.stringify(query)); newQuery.pid = pid; this.$router.push({ path, query: newQuery }); 以上只是其中一种,至于对象的深拷贝浅拷贝需要自己整理一下 来源: CSDN 作者: RXpro0908 链接: https://blog.csdn.net/qq_46028949/article/details/104340481

赋值运算符与拷贝函数重载

不想你离开。 提交于 2020-02-17 05:35:04
【剑指offer-题1】 赋值 vs 拷贝 对象在申明之后,再进行的赋值操作 ,就称为赋值运算。比如: class Person { public: Person() { } Person(int a){ age = a; _name = new char[1]{ '\0' }; } Person(int a, const char *name) :age(a) { _name = new char[strlen(name) + 1]; strcpy(_name, name); _name[strlen(name)] = '\0'; } private: int age; char *_name; }; Person A(10), B; B = A; 其中 B = A 就是赋值运算。 对象在申明的同时进行初始化操作 ,就称为拷贝运算。比如: Person A(10); Person B(A); Person C = A; 其中第二行、第三行都是是拷贝运算了。 拷贝和赋值操作都有缺省的定义,即我们并不需要重载这两个函数就能够正确运行代码,但是, 请注意 ,这里的正确只停留在编译阶段,运行时由于默认拷贝和赋值函数的特点会引发意想不到的错误。这也是下面要讨论的问题。 为什么要重载赋值与拷贝函数 在解释这一问题之前,需要先了解C++中类实例在内存中的分配方式。 C++类实例的内存分配方式

Tomcat 部署Solr 5.2.1

无人久伴 提交于 2020-02-17 04:11:04
准备工作 1.安装Tomcat。   下载地址:http://tomcat.apache.org/ 2.下载Solr最新版本5.2.1。  下载地址: http://lucene.apache.org/solr/ 我的Tomcat路径:E:\Tools\apache-tomcat-7.0.63\ 这个后面会用到。 开始 1.将下载的solr-5.2.1.tgz 解压。得到solr-5.2.1文件夹。 2. 将\solr-5.2.1\server\webapps\solr.war 拷贝至 \apache-tomcat-7.0.63\webapps 目录下。并启动Tomcat 自动解压。 出现solr文件夹以后,停止Tomcat。然后删除solr.war。 3.\solr-5.2.1\example\example-DIH 下包含了一些官方提供的示例,我们可以先拷贝来用。 将\solr-5.2.1\example\example-DIH\solr 拷贝到 \apache-tomcat-7.0.63 如果想演示数据库的,则可以把hsqldb也一起拷贝过去,我这里就不做了。 4.拷贝.jar (1)\solr-5.2.1\server\lib\ext\下的所有的.jar 拷贝到 \apache-tomcat-7.0.63\webapps\solr\WEB-INF\lib\ 下 (2)

JavaScript 中的对象拷贝

泄露秘密 提交于 2020-02-17 01:41:02
翻译自:原文链接: copying-objects-in-javascript 前言 这篇文章我们将会说说 Javascript 中对象拷贝的几种方式,我们会仔细探究深拷贝( deep coping )和浅拷贝( shallow coping )。 在文章开始之前,先提一下一些基础知识:在 Javascript 中,对象只是指向内存中某个位置的指针。这些指针是可变的,也就是说,它们可以重新被赋值。因此,如果我们单单简单地复制这个指针, 那就可能造成有两个指针指向内存中的同一块地址的结果。 var foo = { a : 'abc' } ; console . log ( foo . a ) ; // abc var bar = foo ; console . log ( bar . a ) ; // abc foo . a = 'yo foo' ; console . log ( foo . a ) ; // yo foo console . log ( bar . a ) ; // yo foo bar . a = 'whatup bar?' ; console . log ( foo . a ) ; // whatup bar? console . log ( bar . a ) ; // whatup bar? 从上面的例子可以看出, foo 和 bar

Linux学习之免秘钥登陆

做~自己de王妃 提交于 2020-02-16 11:49:53
1、公私钥简介与原理 公钥和私钥都属于非对称加密算法的一个实现,这个加密算法的信息交换过程是: (1)持有公钥的一方(甲)在收到持有私钥的一方(乙)的请求时,甲会在自己的公钥列表中查找是否有乙的公钥,如果有则使用一个随机字串使用公钥加密并发送给乙。 (2)乙收到加密的字串使用自己的私钥进行解密,并将解密后的字串发送给甲。 (3)甲接收到乙发送来的字串与自己的字串进行对比,如过通过则验证通过,否则验证失败。 非对称加密算法不能使用相同的密钥进行解密,也就是说公钥加密的只能使用私钥进行解密。 2、使用密钥进行ssh免密登录 ssh使用私钥登录大致步骤就是:主机A(客户端)创建公钥私钥,并将公钥复制到主机B(被登陆机)的指定用户下,然后主机A使用保存私钥的用户登录到主机B对应保存公钥的用户。 (1) 实验环境 两台主机: (1)主机A(客户机):10.246.30.131 (2)主机B(被登陆机):10.246.30.130 (2) 实验开始 在需要免密登陆的主机(主机A)下生成公钥和私钥 1 # ssh-keygen -t rsa ## -t rsa可以省略,默认就是生成rsa类型的密钥 说明: 命令执行后会有提示,输入三次回车即可,执行完成后会在当前用户的.ssh目录下生成两个文件:id_rsa、id_rsa.pub文件,前者是私钥文件,后者是公钥文件

Python中的深浅拷贝

余生长醉 提交于 2020-02-16 03:30:25
1.什么是深浅拷贝? python中一切皆对象,python中的数字、字符串、元组等,如果存放在了内存中,这部分内存里面的内容是不会改变的,但是也有情况,内存中存放了可变对象,比如说列表和字典,他们的内存空间是可以被修改的。 下面我们定义一个列表: list=[1,2,3,4,5] list1=list list[0]=6 >>>list [6,2,3,4,5] >>>list1 [6,2,3,4,5] 如果我们只想改变list,问题就出现了。 赋值操作 list1 = list,是浅拷贝,当list的值改变的时候,list1的值跟着改变。 2.用for和[:]实现浅拷贝 list = [ 1, 2, 3, 4, 5] list2= [ i for i in list] //list2=list[:] list2[-1]=0 >>> list >>> list2 [ 1, 2, 3, 4, 5] [ 1, 2, 3, 4, 0] 上面的例子,用for循环生成新的list2对象或者[:]切片赋值得到的list2,当改变list2的值时,list的值没有跟着改变,这就是深拷贝吗?且继续往下看: 3. list = [ 1, 2, 3, [ 1, 2009] ] list3 = [ i for i in list] //list2=list[:] list3[-1].append

Linux SCP命令

萝らか妹 提交于 2020-02-15 10:02:38
Linux SCP命令 SCP 是secure copy的意思,用于Linux系统下基于ssh登陆进行安全的远程文件拷贝命令。 语法: scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 [...] [[user@]host2:]file2 简写: scp [可选参数] file_source file_target 可选参数说明: -1: 强制scp命令使用协议ssh1 -2: 强制scp命令使用协议ssh2 -4: 强制scp命令只使用IPv4寻址 -6: 强制scp命令只使用IPv6寻址 -B: 使用批处理模式(传输过程中不询问传输口令或短语) -C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能) -p:保留原文件的修改时间,访问时间和访问权限。 -q: 不显示传输进度条。 -r: 递归复制整个目录。 -v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。 -c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。 -F ssh_config:

深拷贝 浅拷贝

独自空忆成欢 提交于 2020-02-15 01:17:57
拷贝: 深拷贝 , 指的是二者毫无关系,但数据内容一样,类似值传递 浅拷贝 ,里面存放的内容和以前的是同一个地址,修改内容会改变原来的值,类似引用传递(指针传递) 来源: CSDN 作者: 旅泊 链接: https://blog.csdn.net/bddan/article/details/104312727

MIT 6.828 JOS/XV6 LAB4-partB

雨燕双飞 提交于 2020-02-14 12:38:47
这里要实现的就是UNIX标准系统调用中的fork,核心当然是copy on write技术 至于为什么采用copy on write,是因为子进程在被创建之后很可能立刻执行exec()了,之前做的一系列的拷贝是无用功 所以说,当创建一个新的子进程的时候,只需要拷贝父进程的内存映射(页表)就可以了,而且将父进程所有的内存映射页都标记为只读的,这样,当子进程或者父进程尝试去读的时候是安全的,而当尝试去写的时候,就会出发page fault,而在page fault处理例程中,单独将被写入的页(比如说栈)拷贝一份,修改掉发出写行为的进程的页表相应的映射就可以了 所以说,第一步应该先规定或者确立一个page fault处理例程 每个进程需要向内核注册这个处理例程,只需要传递一个函数指针即可 sys_env_set_pgfault_upcall函数 将当前进程的page fault处理例程设置为func指向的函数 Normal and exception stacks in user environments 这里出现了第三个栈,即异常栈 在用户程序正常运行时,出在正常的用户栈上,用户栈顶位于USTACKTOP处 而异常栈则是为了上面设置的异常处理例程设立的。当异常发生时,而且该用户进程注册了该异常的处理例程,那么就会转到异常栈上,运行异常处理例程 到目前位置出现了三个栈:

C++ 面向对象高级开发 -- string

﹥>﹥吖頭↗ 提交于 2020-02-14 01:29:42
1. Object Based(基于对象) vs. Object Oriented(面向对象) Object Based: 面对的是单一class的设计; Object Oriented:面对的是多重classes的设计,class 和 class 之间的关系。 classes 的两个经典分类: class without pointer members -- complex class with pointer members -- string 2. 设计 string   2.1 防卫式声明   2.2 Big Three 若类内有指针成员,则一定要重写 拷贝构造函数,赋值构造函数和析构函数,即Big Three,执行 深拷贝 操作。编译器默认生成的 拷贝构造函数和赋值构造函数 只会进行 浅拷贝 ! 由于未能确定string对象的大小,因此类内提供一个指针成员,指向动态内存。   2.3 ctor 和 dtor 注意!在析构函数中,调用 delete [] m_data; 释放内存。 在右下角的函数应用中,一旦离开作用域 {} , s1 和 s2 自动调用析构函数释放内存。由于 p 是动态分配的内存,其生命周期在整个程序运行周期内。p 要到程序结束运行后,由系统自动回收泄露的内存。   2.4 copy ctor 和 copy op= 拷贝构造函数 拷贝赋值函数 分3个步骤: