随笔 - 46  文章 - 39  trackbacks - 0
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

留言簿(2)

随笔分类

随笔档案

友情链接

搜索

  •  

最新评论

阅读排行榜

评论排行榜


标准模板库(STL)简介

STL是一个包含类,算法和迭代器的C++库;它提供许多计算机科学的基本算法和数据结构。STL是一个基本库,意味着它的组成有大量的参数:基本上每个组成部分都是一个模板。在你使用STL之前要弄清楚模板是怎么工作的。

容器和算法

就像许多其他类库一样,STL库也包含容器类:这些类的意图是用来容纳其他对象。STL包含Vector(矢量,向量)类,list(清单),deque(队列),set(集),multiset(多重集),map,multimap,hash_set(哈希集),hash_multiset(哈希多重集),hash_map和hash_multimap。所有这些类都是一个模板,它可以实例化来容纳任何类型的对象。举个例子,你可以用vector<int>来代替普通的C数组,而且vector不用管理分配动态内存。

    vector<int> v(3);         //声明一个包含3个元素的vector。
    v[0] = 7;
    v[1] = v[0] + 3;
    v[2] = v[0] + v[1];       //v[0] == 7, v[1] == 10, v[2] == 17

STL也包含了很多算法用来操作容器中的数据。你可以使一个vetor中的元素逆向排列,举个使用reverse算法的例子。
   
 reverse(v.begin(), v.end());   // v[0] == 17, v[1] == 10, v[2] == 7

调用这个reverse函数需要注意两个要点。第一,它不是成员函数,而是一个全局函数。第二,它需要两个参数而不是一个:它不是作用在容器上,而是作用在一系列元素上。在这个具体的例子一系列元素就是整个容器v。

这些事实的原理都是一样的:reverse,像其他STL算法,都是与STL容器类分离的。这意味着reverse不仅仅只能用在vector中的元素,还可以用在lists中的元素,甚至是C数组中的元素。下面的程序是正确的。
 
  double A[6] = {1.2, 1.3, 1.4, 1.5, 1.6, 1.7};
   reverse(A, A + 6);
   for(int i=0; i<6; ++i)
     cout << "A[" << i << "]=" << A[i];

这个例子用了一个范围,就像逆序一个vector的例子:reverse的第一个参数指向这个范围的开始,第二个参数指向这个范围的末尾的后面。这个范围是[A, A+6);这两个不对称的记号让人想到两个不一样的端点,第一个是这个范围的开始,第二个是这个范围末端的后一位。


下一节《迭代器》
posted @ 2012-02-20 21:02 canaan 阅读(459) | 评论 (0)编辑 收藏
1、开始->运行 control userpasswords2,弹出用户帐号对话框。



2、取消“要使用本机,用户必须输入密码”。
3、按下Ctrl+Shift+A,弹出“自动登录”对话框,设置好用户帐号和密码。
OK,大功告成。
2、
posted @ 2012-02-07 10:06 canaan 阅读(1074) | 评论 (0)编辑 收藏
INT 3断点,其机器码是CCh,也常称为CC指令。

对MessageBoxA函数进行的断点检测:
FARPROC Uaddr;
BYTE Mark = 0;
(FARPROC&) Uaddr = GetprocAddress ( LoadLibrary("user32.dll"), "MessageBoxA");
Mark = *((BYTE*)Uaddr);                //取MessageBoxA函数第一字节
if(Mark == 0xCC)
  return TRUE;
posted @ 2012-02-04 22:40 canaan 阅读(555) | 评论 (0)编辑 收藏
test al,al   测试al是否为0,如果al为0标志位ZF=1。
xor al,al   al清零。
posted @ 2012-02-04 19:53 canaan 阅读(217) | 评论 (0)编辑 收藏
 _stdcall调用

  _stdcall是Pascal程序的缺省调用方式,参数采用从右到左的压栈方式,被调函数自身在返回前清空堆栈。
   WIN32 Api都采用_stdcall调用方式.
  按C编译方式,_stdcall调用约定在输出函数名前面加下划线,后面加“@”符号和参数的字节数,形如_functionname@number。
posted @ 2012-01-13 21:17 canaan 阅读(69) | 评论 (0)编辑 收藏

1.URL地址防注入:

//过滤URL非法SQL字符
var sUrl=location.search.toLowerCase();
var sQuery=sUrl.substring(sUrl.indexOf("=")+1);
re
=/select|update|delete|truncate|join|union|exec|insert|drop|count|’|"|;|>|<|%/i;
if(re.test(sQuery))
两段简单的JS代码防止SQL注入
{
    alert(
"请勿输入非法字符");
    location.href
=sUrl.replace(sQuery,"");
}

 

2.输入文本框防注入:

引入以下js

 1//防止SQL注入
 2function AntiSqlValid(oField )
 3两段简单的JS代码防止SQL注入{
 4    re= /select|update|delete|exec|count|’|"|=|;|>|<|%/i;
 5    if re.test(oField.value) )
 6两段简单的JS代码防止SQL注入    {
 7    //alert("请您不要在参数中输入特殊字符和SQL关键字!"); //注意中文乱 码
 8    oField.value = ”;
 9    oField.className="errInfo";
10    oField.focus();
11    return false;
12    }


 

在需要防注入的输入文本 框添加如下方法

     

1      txtName.Attributes.Add("onblur""AntiSqlValid(this)");//防止Sql脚本注入
posted @ 2011-08-08 15:09 canaan 阅读(980) | 评论 (2)编辑 收藏
int CDECL MessageBoxPrintf(TCHAR *szCaption, TCHAR *szFormat,...)
{
    TCHAR szBuffer[1024];
    va_list pArgList;

    va_start(pArgList, szFormat);
    _vsntprintf(szBuffer, sizeof(szBuffer)/sizeof(TCHAR), szFormat, pArgList);
    va_end(pArgList);
    return MessageBox(NULL, szBuffer, szCaption, 0);
}
posted @ 2011-08-03 13:13 canaan 阅读(356) | 评论 (1)编辑 收藏
int
WINAPI
WinMain(
      HINSTANCE hInstance,             //执行实体代号
      HINSTANCE hPrevInstance,       //判断自身的其他执行实体是否正在运行(32位元Windows版本,该概念已被抛弃。该参数值总是为NULL 0)
      LPSTR lpCmdLine,                    //用于执行程序的命令列
      int nShowCmd                         //程序最初显示方式
);

此函数在WINBASE.H中有声明
WinMain函数声明为返回一个int值。WINAPI标识符在WINDEF.H定义 #defina WINAPI __stdcall



WINDEF.H    基本型态定义
WINNT.H      支持Unicode的型态定义
WINBASE.H  Kernel函数
WINUSER.H  用户接口函数
WINGDI.H     图形设备接口函数
posted @ 2011-08-02 21:28 canaan 阅读(225) | 评论 (0)编辑 收藏

STL简介

目录

索引

设计文档

其他STL资源

IOstream库(实验)

如何使用本站

STL下载

分类索引

最新消息

常见问题

允许免费使用,复制,修改,分发和出售本软件及其文档以任何用途。只是在拷贝文件和支持文档中都要有版权申明。Silicon Graphics 没有因为任何陈述本软件适合范围。它按原样提供没有任何担保。

版权所有© 1994
惠普公司

原文:http://www.sgi.com/tech/stl/

posted @ 2010-07-30 09:21 canaan 阅读(233) | 评论 (0)编辑 收藏

电脑感觉慢了很多,看着一大堆垃圾,重装喽。
以前都用安装光盘安装,都要半个小时左右,还要装驱动。

这次选择雨林木风,10分钟就搞定了,开心。



雨林木风光盘购买地址:http://item.taobao.com/item.htm?id=5651085094

posted @ 2010-06-01 13:39 canaan 阅读(410) | 评论 (4)编辑 收藏
仅列出标题
共5页: 1 2 3 4 5