英语
/di`li:t/
v.tr.
remove or obliterate(written or printed matter),esp.by striking out
(尤指划掉)删除,删去(手写话印刷内容)
[Latin delēre delet-'efface']
对于文件名shift+delete可彻底删除。按住 SHIFT 键再单击“关闭”按钮(一般适用)
Delete()过程
语言:Pascal
Procedure Delete(var S :String ; Index,Count:Integer) ;
说明:Delete() 删除字符串S中从第Index个字符开始的Count个字符。
若Index超出了S的长度,则不执行删除的操作。
若Index+Count超出了S的长度,则删除从Index到S末尾的字符。
若Index或Count出现负数,则不执行删除的操作。
例如:
Var S :String ='1234567890' ;
执行 Delete(S,1,3) 后,S=‘4567890’ ;执行 Delete(S,9,8888) 后,S='12345678'
执行 Delete(S,99,2) 后,S=‘1234567890’ ;执行 Delete(S,-1,3) 后,S=‘1234567890’
new / delete 的使用(c/c++)
编程的时候经常要用到堆内存的分配,通常使用的操作符是new,这个时候就必然要用到delete函数去释放申请的内存空间。
此时至少要遵循以下原则:
(1)new和delete是成对出现的。只出现一个是错误的或不规范的写法,即时能编译通过,也会有安全隐患;
(2)使用的new与delete要相同。也就是说如果你在 new 表达式中使用了 [],你必须在对应的 delete 表达式中使用 []。如果你在 new 表达式中没有使用 [],你也不必在对应的 delete 表达式中不使用 []。
例:
printf("-------- 使用 new / delete 情况 ---------------
");
string *p1=new string("123");//p1申请了一个空间
printf("<%s>
", p1->c_str());
delete p1;//释放的时候释放一个就可以了
printf("-------- 使用 new[] / delete[] 的情况 ---------------
");
int i;
string* p2 = new string[5];//p2申请了一组空间
for ( i=0; i< 5; i++ )
{
p2.assign("123");
}
for( i=0; i< 5; i++ )
{
printf("%d:%s
", i, p2.c_str());
}
delete [] p2;//当然要释放一组了