arr

C++指针系列

删除回忆录丶 提交于 2020-03-28 05:20:46
写这篇文章总结C++指针的用法。 在C++中最好不要用new/delete来使用指针,而应该用智能指针来管理资源,智能指针就属boost做得最好了。boost的源码和使用方法在网上随便一搜就可以找到,在此就不哆嗦了。下面进入正文—— 最后的指针 1. delete , delete[]的区别   虽然要放弃new/delete的用法,但在这里还是要讲一个值得注意的地方。   int* arr=new int[3]; //不同于new int(3),用[]是指明arr是具有3项的数组,而()是给申明一个整数,其初值为3   在这总情况下,下面两种delete都正确   delete arr; //OR delete [] arr; 2. const不同位置的区别 const int *p = new int(4); //或者 int const *p = new int(4); 这里用const后,就不能 *p = 5 ; 进行赋值。这时*p所指内容不能修改。 int *const p = new int(4); 不能用 p = NULL ; 这里p本身不能被修改 3. 将指针作为参数时的注意事项 如果将一个指针传入函数,并且在这个函数中分配内存后再赋值,那么得用两维指针。如下 void GetValue(int *v) //这个代码是错误的 { v = new int; *v =

JavaScript Array 整理 元素操作

喜你入骨 提交于 2020-03-28 03:08:17
此文章是我的原创文章,地址: http://www.faceye.net/search/142558.html 整理了一些Array常用的遍历操作方法,今天再整理一下Array对象中针对元素操作的方法。 分别是: concat (组合数组) join(数组转字符串) pop(删除最后一个元素) shift(删除第一个元素) push(在数组尾部添加新元素) unshift(在数组头部添加新元素) slice (不改变数组本身,常用将类数组转换成数组,而后可以使用数组方法操作类数组) splice (指定位置、截取、替换) Array.prototype.concat(arr[, arr1, ......, arrN]) 描述 此方法返回一个由自身及所传参数拼接成的新数组,每一个参数都必须为数组类型。 return Array,由自身及参数拼接成的新数组。 demo javascriptvar arr = [1,2,3]; arr.concat(['a'], ['b']) [1, 2, 3, "a", "b"] Array.prototype.join([str]) 描述 此方法将数组中所有元素组合成一个字符串,默认以“,”号拼接,也可以指定拼接参数。 return String, 有数组中所有元素拼接成的字符串 demo javascriptvar arr = [1,2,3];

[转]Base64 算法原理,以及编码、解码【加密、解密】 介绍

独自空忆成欢 提交于 2020-03-27 20:15:13
Base64编码,是我们程序开发中经常使用到的编码方法。它是一种基于用64个可打印字符来表示二进制数据的表示方法。它通常用作存储、传输一些二进制数据编码方法!也是MIME(多用途互联网邮件扩展,主要用作电子邮件标准)中一种可打印字符表示二进制数据的常见编码方法!它其实只是定义用可打印字符传输内容一种方法,并不会产生新的字符集!有时候,我们学习转换的思路后,我们其实也可以结合自己的实际需要,构造一些自己接口定义编码方式。好了,我们一起看看,它的转换思路吧! Base64实现转换原理 它是用64个可打印字符表示二进制所有数据方法。由于2的6次方等于64,所以可以用每6个位元为一个单元,对应某个可打印字符。我们知道三个字节有24个位元,就可以刚好对应于4个Base64单元,即3个字节需要用4个Base64的可打印字符来表示。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9 ,这样共有62个字符,此外两个可打印符号在不同的系统中一般有所不同。但是,我们经常所说的Base64另外2个字符是:“+/”。这64个字符,所对应表如下。 编号 字符 编号 字符 编号 字符 编号 字符 0 A 16 Q 32 g 48 w 1 B 17 R 33 h 49 x 2 C 18 S 34 i 50 y 3 D 19 T 35 j 51 z 4 E 20 U 36 k 52 0 5 F 21

php整理

自闭症网瘾萝莉.ら 提交于 2020-03-27 14:58:16
1. include 和 require 的区别 加载失败的处理方式不同。引入不存在的文件时, include 会产生警告且脚本还会继续执行, require 则会导致一个致命性错误且脚本停止执行。 文件引用方式不同。 include() 执行时需要引用的文件每次都进行执行,并且可以有返回值, require() 只是单纯的文件替换,没有返回值 require 一般放在 PHP 文件的最前面,程序在执行前会先倒入所需要引用的文件; include 一般放在程序的控制流程中,当程序执行时碰到才会引用,简化程序的执行流程。 2.常用关键字 final :用于声明方法和类,修饰类时,该类不能被继承,修饰方法时,该方法不能被覆盖。 static :主要用来修饰成员变量以及成员方法,分别为静态变量和静态方法,通过类直接调用。 global :主要使用于函数内声明变量为全局变量,在函数内部可以使用外部变量。 global 声明的变量只是全局变量的一个同名引用, $GLOBALS 是全局变量本身。 this 、 self 、 parent : this 是指向当前对象的指针, self 是指向当前类的指针, parent 是指向当前父类的指针。 Trait :是为 PHP 的单继承语言而准备的一种代码复用机制。Trait 为了减少单继承语言的限制

JavaScript在HTML中的应用

限于喜欢 提交于 2020-03-27 06:48:56
JavaScript概述 JavaScript是基于对象和事件驱动的脚本语言,主要应用在客户端。 特点: 1,交互性(它可以做的就是信息的动态交互) 2,安全性(不允许直接访问本地硬盘) 3,跨平台性(只要是可以解释JS的浏览器都可以执行,和平台无关) JavaScript与Java不同 1,JS是Netscape公司的产品,前身是LiveScript;Java是Sun公司的产品,现在是Oracle公司的产品 2,JS是基于对象,Java是面向对象 3,JS只需解释就可以执行,Java需要先编译成字节码文件,再执行 4,JS是弱类型,Java是强类型 JavaScript与Html的结合方式 想要将其他代码融入到Html中,都是以标签的形式。 1,JS代码存放在标签对<script> js code... </script>中。 2,当有多个html页面使用到相同的JS脚本时,可以将JS代码封装到一个文件中,只要在script标签的src属性引入一个JS文件。(方便后期维护、扩展) 注意:如果在script标签中定义了src属性,那么标签中的内容不会被执行。 例:<script src="test.js" type="text/javascript"></script> 注:规范中script标签早期有一个属性language,而现在使用type属性。 JavaScript语法

Problem B: 数量的类模板

有些话、适合烂在心里 提交于 2020-03-27 06:02:18
Description 定义一个类模板Data,用于包装C++中的基本数据类型int和double。它包括: 1. 数据成员value为该对象所包装的值。 2. 无参构造函数(初始化value为0)和带参构造函数。 3. 重载的运算符:>、<、+以及<<。其中"+"返回和,不改变两个操作数的值。 4. 成员函数setValue用于设置value的值。 定义另一个类模板GetResult,它只有3个 静态 成员函数(以下“T"为类型参数): 1. static Data<T> getSum(Data<T> *arr, int num):求存储在arr中的num个Data对象的和,并返回由这个和构成的一个Data对象。 2. static Data<T> getMax(Data<T> *arr, int num):求存储在arr中的num个Data对象的最大值,并返回这个最大值对应的对象。 3. static Data<T> getMin(Data<T> *arr, int num):求存储在arr中的num个Data对象的最小值,并返回这个最小值对应的对象。 Input 输入分多行。 第一行M>0表示有M个测试用例。 只有的M行,每行开始有一个字母i或d,第二个是正整数N>0。如果第一个字母是i,则表示本行包括N个int类型的数据;如果第一个字母为d

写一个字符串反转函数,实现字符串倒序。

吃可爱长大的小学妹 提交于 2020-03-27 05:15:37
第一种方法: <script type="text/javascript"> var str="abcdeg"; function demo(str){ var str2=""; for(var i=0;i<str.length;i++){ str2+=str.charAt(str.length-i-1); } document.write(str+"<br />"+str2) } demo(str); </script> 第二种方法: <input type="textfield" id="input"/> <div id="result"></div> <input type="button" value="reverse" onclick="reverse()"/> <script language="javascript"> function reverse() { var str=document.getElementById("input").value; var a=str.split(''); var result=new Array(); while(a.length) { result.push(a.pop()); } document.getElementById("result").innerHTML=result.join(''); } </script>

算法笔记-分支界限法

本秂侑毒 提交于 2020-03-27 03:48:45
  (1)广度优先    说明:        代码: 1 <?php 2 3 $arr = [ 4 'A' => [ 5 'B' => [ 6 'D' => ['H', 'I'], 7 'E' => ['J'], 8 'F', 9 ], 10 'C' => ['G'], 11 ], 12 ]; 13 14 //直接用数组遍历 15 //print_R(bfsArr($arr)); 16 17 18 //先将数组转成树, 再遍历 19 //$tree = current(buildTree($arr)); 20 //$queue = [$tree->val]; 21 //print_r(bfsObj([$tree])); 22 23 24 function bfsArr($queue) { 25 static $res; 26 $val = key($queue); 27 $out = array_shift($queue); 28 if (is_array($out)) { 29 $res[] = $val; 30 $queue = array_merge($queue, $out); 31 } else { 32 $res[] = $out; 33 } 34 35 if (!empty($queue)) { 36 bfsArr($queue); 37 } 38 return

连续子数组的最大和(基于动态规划)

泪湿孤枕 提交于 2020-03-26 12:06:41
题目   输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为O(n) 。例如输入的数组为{1,-2,3,10,-4,7,2,-5},和最大的子数组为{3,10,-4,7,2},因此输出为该子数组的和18。 思路 一般解法 从头到尾累加数字,保存到一个临时变量curr_sum中 如果前几项的和为负,则加上此和之后比本身的值还要小,抛弃原来所计算得到的和,curr_sum从本元素开始计数 ;否则,把当前元素累加到curr_sum 把curr_sum与最大值max_sum比较(max_sum保存每个连续数组的最大和) class Solution { public: int FindGreatestSumOfSubArray(vector<int> arr) { if(arr.size()==0) return 0; else if(arr.size()==1) return arr[0]; int curSum=arr[0]; int maxSum=-0x3f3f; for(int i=1;i<arr.size();++i) { if(curSum<0)//如果前几项的和为负,则加上此和之后比本身的值还要小,数组从本元素开始计数 curSum=arr[i]; else curSum+=arr[i];

Javascript 中 Array的 sort()和 compare()方法

对着背影说爱祢 提交于 2020-03-26 02:32:23
Javascript 中 Array的 sort()方法其实是把要排序的内容转化为string(调用 toString()), 然后按照字符串的第一位 ascii 码先后顺序进行比较,不是数字。 我们看看官方是怎么说的: arrayobj. sort( sortfunction ) 参数 arrayObj 必选项。任意 Array 对象。 sortFunction 可选项。是用来确定元素顺序的函数的名称。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。 说明 sort 方法将 Array 对象进行适当的排序;在执行过程中并不会创建新的 Array 对象。 如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一: 负值,如果所传递的第一个参数比第二个参数小。 零,如果两个参数相等。 正值,如果第一个参数比第二个参数大。 <html> <head> <script type="text/javascript"> var arr = [1,3, 25];      arr.sort(); alert(arr); </script> </head> <body> </body> </html> 结果: 1,25,3 那么怎么办呢?我们可以写一个 compare() 方法 <html> <head> <script type="text