在使用iTunes同步iPhone或者iPad时,iTunes总会自动备份iPhone/iPad上的资料。由于默认备份路径在C盘,C盘空间越来越少。
目前Apple还没有提供选项来修改备份路径的位置,但是我们可以使用下面方法来进行变相修改:
1)
在其他磁盘分区,例如D盘下面创建一个名为“iphone5.0.1backup”的文件夹。
2)将iTunes默认备份路径(我机器上的路径是C:\Users\MagicSun\AppData\Roaming\Apple
Computer\MobileSync\Backup)下的所有子文件夹(每个子文件夹代表着一个设备的备份目录)复制到刚才建立的“D:\ipho
那些年
叶子的离去,是风的追求,还是树的不挽留。
不曾得知,也许离去才是最终的归宿。
那些年,承载着太多太多。
回忆着,也许是淡然一笑带着些许苦涩,更或许是飘然洒脱不带着一丝烦扰。
谁知道呢。
恍然间,岁月匆匆如此。
那些年,现在,未来。
数据结构C++(2)
基本数据类型
1、整型:int
内存中的数据:短整型short int(16位)、长整型long int(32位)、整型
int(位数与机器和编译器有关)

内存视图:(数87=1010111存放在地址3的一个字节中,数500=0000000111110100存放在地址为4的两个字节中)

数据结构C++(1)
抽象数据类型
1.抽象数据类型(ADT):一种用户定义的数据类型,其运算符指明了用户如何操作数据。与具体应用无关,集中与数据及其操作的理想模型上。C++使用用户定义的类(class)来表示抽象数据结构。
2.ADT描述规范:
ADT
ADT名称 is
Data
描述数据的结构
Operations
Constructor<构造函数>
Initial values: 用来初始化对象的数据
Process:初始化对象
操作1
Input:用户输入的数值
Preconditions:系统执行本操作前数据所必须的状态(前提)
&
C/C++泛型编程(22)
排序和查找
一、对某个区间排序:sort\stable_sort\partial_sort\partial_sort_copy\nth_element\is_sorted
sort:将[first,last)中元素以递增顺序排序,但并非稳定排序算法,即无法保证两个等价元素的相对位置。
stable_sort:稳定sort排序,即能够保持等价元素间的相对顺序。但是sort比stable_sort更快。它会试图分配临时内存缓冲区。(整批队列按优先级排序,模拟进入窗口系统中的各消息)
partial_sort:部分排序,会将[first,middle),[middle,last)
以middle分割,然后对middLe前的区间[first,last)进行递增排序(重新排序),其他区间顺序保持不变。追求效率,如对前N个最小的元素进行排序。如果middle==first,那么[first,last)会以未定顺序重新排序;如果middle==end,那么[first,last)会以递增顺序重新排序。但速度上sort比partial_sort快上两倍。
nth_element:分割重新排序,会将[first,nth),[nth,last)
以nth分割,使得[first,
C/C++泛型编程(21)
改变操作对象内容算法_一般化数值算法
accumulate 总和运算一般型
(1)template <class InputIterator,class T>
T accumulate(InputIterator first,InputIterator last,T init);
(2)template <class InputIterator,class T,class
BinaryFunction>
T accumulate(InputIterator first,InputIterator last,T
init,BinaryFunction binary_op);
accumulate算法是总和运算的一般型,它可以计算init和[first,last)内所有元素的总和。
注意:如果你希望计算[first,last)内所有元素数值的总和,你应该将init设为0.而当你希望计算[first,last)的乘积时,则应将init设为1.
【举例】计算range内所有元素的总和以及乘积
int main(){
int A[]={1,2,3,4,5};
const int N=sizeof(A)/sizeof(int);
cout << 'The sum of all elements in A is '<<
accumulate(A,A+N,0)<< end
C/C++泛型编程(20)
改变操作对象内容算法_随机重排与抽样
random_shuffle 随机重排
(1)template <class RandomAccessIterator>
void random_shuffle(RandomAccessIterator
first,RandomAccessIterator last);
(2)template <class RandomAccessIterator,class
RandomNumberGenerator>
void random_shuffle(RandomAccessIterator
first,RandomAccessIterator last,RandomNumberGenerator&
rand);
算法random_shuffle随机重排[first,last)的顺序,即它在N!种可能的元素排列顺序中随机选出一种。N个元素的序列其排列方式有N!种,而random_shuffle会产生一种均匀分布。版本1使用了内部的乱数产生器,版本2则使用了特别的函数对象RandomNumberGenerator
,它被当成引数传递进来,而非值传递。如果乱数的选择对您的程序很重要那么请选择第二版本。
【举例】随机排列数组
int main(){
const int N=8;
int A[]={1,2,3,4,5,6,7,8};
访问格式化日期程序
private static SimpleDateFormat sdf = new
SimpleDateFormat('yyyy-MM-dd HH:mm:ss');
private static SimpleDateFormat sdf2 = new
SimpleDateFormat('yyyy-MM-dd');
private static SimpleDateFormat sdf3 = new
SimpleDateFormat('HH:mm:ss');
public static String handleFormatDate(java.util.Date date){
//处理格式化当前日期('YYYY-MM-DD HH:mm:ss')
if (date == null){ return '';}
else{ return sdf.format(date);}
}
//处理格式化数据库日期('YYYY-MM-DD HH:mm:ss')
public static String handleTimestamp(Timestamp inTime){
if (inTime == null){return '';}
else{ return sdf.format(new
java.util.Date(inTime.getTime()));}
}
JS生成下拉框方法
function genDefaultOpt(){//生成下拉框默认项
return '<option selected
value=''>-请选择-</option>';
}
function
genSelBox(id,type,selectedKey,setAll,_class_,_script_,nullFlag){
//根据type生成下拉框
var str = '';
str += '<select id='' + id + '' name='' + id
+'' class=''+ _class_ +'' ' + _script_ ;
if(nullFlag!=undefined&&nullFlag==true){
//是否数据项可以为空并定义长度为200
str += ' datatype='0,is_null,200' ';
}
str += ' > ';
if(setAll){
str += genDefaultOpt();
}
for(var i=0;i<codeData.length;i++){
if(codeData[i].type == type){
str += '<option ' + (codeD
C/C++泛型编程(19)
改变操作对象内容算法_分割
partition:分割
template <class BidirectionalIterator,class
Predicate>
BidirectionalIterator parition(BidirectionalIterator
first,BidirectionalIterator last,Predicate pred);
【说明】算法根据函数对象重新排列[first,last)的元素,使满足pred的元素排在不满足pred的元素之前,但这不能保证分割后元素的相对顺序,而stable_partition不同。
【用途】根据partition分割