当前位置:  编程技术>综合
本页文章导读:
    ▪[STL基础]双向链表List之用法      list网上实例   list的函数共有五大类:定义及初始化,增加删除元素,访问元素,返回迭代器,其他 #include <string> #include <vector> #include <list> #include <conio.h> #include<iostrea.........
    ▪基数排序之LSD篇 (知识点小结)      基数排序(radix sort)是属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达.........
    ▪主板放电之后 mac 无法正常启动之谜      前段时间,在插上带 tf 卡的读卡器的情况下打开了我的 mac 主机,之后我便陷入了一连串的麻烦之中~ 平时开机都是很正常的,这次却意外的在屏幕上显示出了黑底白字的一串英文: reboot and s.........

[1][STL基础]双向链表List之用法
    来源: 互联网  发布时间: 2013-11-07

list网上实例

 

list的函数共有五大类:定义及初始化,增加删除元素,访问元素,返回迭代器,其他

#include <string>
#include <vector> 
#include <list>
#include <conio.h>
#include<iostream>
using namespace std;  
void PrintListInt(list<int>& param)
{
    for (list<int>::iterator iter=param.begin();iter!=param.end();iter++)
    {
        cout<<*iter<<" ";
    }
    cout<<endl;    
}
void PrintListString(list<string>& param)
{
    for (list<string>::iterator iter=param.begin();iter!=param.end();iter++)
    {
        cout<<*iter<<" ";
    }
    cout<<endl;    
}
//定义及初始化;没有返回值,或void
void test0()
{ 
    list<int> first(4);//定义并初始化4个0
    PrintListInt(first);//0 0 0 0
    list<int> second(3,88);//定义并初始化3个88
    PrintListInt(second);//88 88 88 
    first.assign(4,90);//assign赋值  //4个90
    second.assign(first.begin(),first.end());//second拷贝first
    int arr[]={23,45,56};
    second.assign(arr,arr+2);
    PrintListInt(second);//23 45 (没有56,者说明assign赋值是[begin,end),而不是[begin,end])
    second.assign(0,0);//清空second
    PrintListInt(second);//为空  
}
//增加删除元素;返回值是void,除erase()的返回值是iterator外
void test1()
{ 
    list<int> first(3,8);
    first.push_back(6);//增加一个元素在list末端
    first.push_front(2);//增加一个元素在list前端
    PrintListInt(first);//2 8 8 8 6
    first.pop_back();//删除list末端元素
    first.pop_front();//删除list前端元素
    PrintListInt(first);//8 8 8 
    first.insert(first.begin(),5);//在前端添加一个元素,不可以first.begin()+1;但vector<int>ve(4);ve.insert(ve.begin()+1,4);却可以
    first.insert(first.end(),2,9);//在末端添加两个元素,同上,end()-2不可以,但vector的end()-2可以
    PrintListInt(first);//5 8 8 8 9 9
    list<int>second;
    second.insert(second.end(),first.begin(),first.end());//second赋值first
    PrintListInt(second);//5 8 8 8 9 9

    second.erase(second.begin());//删除前端元素,参数不能为second.begin()+1,当然也不能为second.end();若要删除第二个元素,则可通过++second.begin(),或iterator,然后iterator++
    PrintListInt(second);//8 8 8 9 9 
    second.erase(second.begin(),second.end());//全部删除
    PrintListInt(second);//为空

    first.remove(77);//删除77这个不存在的元素 
    PrintListInt(first);//5 8 8 8 9 9
    first.remove(8);//删除所有的8这个元素
    PrintListInt(first);//5 9 9
    if (!first.empty()) 
        first.clear();//全部清除
    PrintListInt(first);//为空 
    //在list的函数insert(),erase()的函数参数时(iterator+2)是不可以的,只可以通过不停地iterator++;这一点与vector的insert(),erase()不同,可以通过iterator+2来很方便的删除任意位置的元素。因为它们存储的内存地址不一定连续的,所以不能通过iterator+、-N来访问第N个元素,只能通过iterator++来逐一访问,甚至量iterator=iterator+1都不行
    //由于list是双向链表,所以比线性表vector多提供了增加删除元素的函数,push_front(),pop_front(),remove(),remove_if()
}
//访问获取元素;返回值是Type T
void test2()
{ 
    list<int> first;
    for(int i=0;i<5;i++)
        first.push_back(i);
     cout<<first.front()<<endl;//0 返回前端元素的引用
     cout<<first.back()<<endl;//4 返回末端元素的引用
    //由于list是双向链表,所有没有像线性表vector那样提供下标索引,at()来提供方便的数据访问函数
}
//返回迭代器;返回值是iterator,或reverse_iterator
void test3()
{ 
    list<int> first;
    for(int i=0;i<5;i++)
        first.push_back(i); 
     cout<<*first.begin()<<endl;//0 不可以 cout<<*first.end()<<endl;不然会崩溃
     cout<<*first.rbegin()<<endl;//4 不可以cout<<*first.rend()<<endl;不然会崩溃
     for(list<int>::iterator it=first.begin();it!=first.end();it++)
         cout<<*it<<" ";//0 1 2 3 4
     cout<<endl;
     list<int>::reverse_iterator reIt=first.rbegin();
     while(reIt!=first.rend())
     {
         cout<<*reIt<<" ";//4 3 2 1 0
         reIt++;//记住是++,因为他是rbegin中的begin
     }
     cout<<endl;
     //与vector提供的函数相同begin(),end(),rbegin(),rend();不同的iterator不可以+N
} 
//其他
void test4()
{ 
    list<string> ve(2);
    cout<<ve.size()<<endl;//2 
    cout<<ve.max_size()<<endl;//134217727(string),10737441823(int)
    ve.resize(7);
    cout<<ve.size()<<endl;//7 
    //与vector不同的是少了capacity(),reserve()获取容量,设置容量

    list<int> first;
    for(int i=0;i<5;i++)
        first.push_back(i); 
    first.reverse();//逆序
    PrintListInt(first);//4 3 2 1 0
    list<int>second(2,9);
    second.swap(first);//两个list之间交互数据
    PrintListInt(first);//9 9
    PrintListInt(second);// 4 3 2 1 0
    first.sort();
    second.sort();//排序(从小到大)
    PrintListInt(second);//0 1 2 3 4
    first.merge(second);//second合并到first中,之后second为空。这里需要注意的是:在调用合并函数merge()之前,first和second都必须是从小到大的排序的
    PrintListInt(first);//0 1 2 3 4 9 9
    PrintListInt(second);//为空
    first.unique();//使唯一,删除相同的数据
    PrintListInt(first);//0 1 2 3 4 9
    //比vector多提供了逆序reverse(),排序sort(),和并merge(),使唯一unique()等数据处理的函数
} 
//遍历list
void test5()
{ 
    list<int> vec;
    for (int i=0;i<10;i++)
    {
        vec.push_back(i);
    } 

    list<int>::iterator iter;
    for (iter=vec.begin();iter!=vec.end();iter++)
        cout<<*iter<<" ";
    cout<<endl;

    list<int>::reverse_iterator reIter;
    for (reIter=vec.rbegin();reIter!=vec.rend();reIter++) 
        cout<<*reIter<<" ";//9 8 7 6 5 4 3 2 1 0
    cout<<endl;

    vec.reverse();
    list<int>::reverse_iterator reveIter=vec.rbegin();
    while(reveIter!=vec.rend())
    {
        cout<<*reveIter<<" ";//0 1 2 3 4 5 6 7 8 9
        reveIter++;
    }
    cout<<endl;    
} 
void Test(char h)
{
    cout<<"press key===="<<h<<endl;
    switch(h)
    { 
    case '0':  test0();break;
    case '1':  test1();break;
    case '2':  test2();break;
    case '3':  test3();break;
    case '4':  test4();break;
    case '5':  test5();break; 
    case 27:
    case 'q':exit(0);break; 
    default:cout<<"default "<<h<<endl;break;
    }
}
void main()
{
    while(1)
    {
        Test(getch());
    } 
}


 

作者:ouyangshima 发表于2013-1-7 2:10:41 原文链接
阅读:95 评论:0 查看评论

    
[2]基数排序之LSD篇 (知识点小结)
    来源: 互联网  发布时间: 2013-11-07

基数排序(radix sort)是属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O ( d(n+radix ) ),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的比较性排序法(比较性排序法的时间复杂度下限是O(n log n))。


基本思路(载自百科):

解法 
  基数排序的方式可以采用LSD(Least sgnificant digital)或MSD(Most sgnificant digital),LSD的排序方式由键值的最右边开始,而MSD则相反,由键值的最左边开始。 
  以LSD为例,假设原来有一串数值如下所示: 
  73, 22, 93, 43, 55, 14, 28, 65, 39, 81 
  首先根据个位数的数值,在走访数值时将它们分配至编号0到9的桶子中: 
  0 
  1 81 
  2 22 
  3 73 93 43 
  4 14 
  5 55 65 
  6 
  7 
  8 28 
  9 39 
  接下来将这些桶子中的数值重新串接起来,成为以下的数列: 
  81, 22, 73, 93, 43, 14, 55, 65, 28, 39 
  接着再进行一次分配,这次是根据十位数来分配: 
  0 
  1 14 
  2 22 28 
  3 39 
  4 43 
  5 55 
  6 65 
  7 73 
  8 81 
  9 93 
  接下来将这些桶子中的数值重新串接起来,成为以下的数列: 
  14, 22, 28, 39, 43, 55, 65, 73, 81, 93 
  这时候整个数列已经排序完毕;如果排序的对象有三位数以上,则持续进行以上的动作直至最高位数为止。 
  LSD的基数排序适用于位数小的数列,如果位数多的话,使用MSD的效率会比较好,MSD的方式恰与LSD相反,是由高位数为基底开始进行分配,其他的演算方式则都相同。 


代码示例:

#include<iostream>

using namespace std;

const int MAXSIZE=10;

int main(){
	int data[MAXSIZE]={43,12,54,23,14,65,21,90,33,86};//先初始化数组
	int tmp_queue[MAXSIZE][MAXSIZE]={0};
	int order[MAXSIZE]={0};

	int i;

	cout<<"排序前数组顺序为:"<<endl;
	
	for(i=0;i<MAXSIZE-1;i++)//输出原始的数组
		cout<<data[i]<<" ";
	cout<<data[i]<<endl;

	int n=1,k;
	int lsd,flag=1;

	while( n <= MAXSIZE){
		for(i=0 ;i<MAXSIZE;i++){//按照排序码的大小,将数据分配到不同的队列中
			lsd=((data[i]/n)%10);
			tmp_queue[lsd][order[lsd]++]=data[i];
		}

		n*=10;//选择的排序码向高位移动一位
		k=0;
		int j;

		cout<<"\n第"<<flag++<<"趟分配和收集后的数据顺序为:"<<endl;
		for( i=0;i<MAXSIZE;i++){
				if( order[i] != 0){
					for( j=0;j<order[i];j++){
						data[k]=tmp_queue[i][j];
						cout<<data[k++]<<" ";
					}
				}
				order[i]=0;//重新将数组长度标记为0 以便下一次循环时候使用
		}
	}

	cout<<"\n\nLSD基数排序法结束后的数据顺序为:"<<endl;
	for(i=0;i<MAXSIZE-1;i++)
		cout<<data[i]<<" ";
	cout<<data[i]<<endl;//输出最后一个数据
	return 0;
}

运行结果:




基数排序的发明可以追溯到1887年赫尔曼·何乐礼在打孔卡片制表机(Tabulation Machine)上的贡献。它是这样实现的:将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。
  基数排序的方式可以采用LSD(Least significant digital)或MSD(Most significant digital),LSD的排序方式由键值的最右边开始,而MSD则相反,由键值的最左边开始。



时间效率:设待排序列为n个记录,d个关键码,关键码的取值范围为radix,则进行链式基数排序的时间复杂度为O(d(n+radix)),其中,一趟分配时间复杂度为O(n),一趟收集时间复杂度为O(radix),共进行d趟分配和收集。


欢迎转载,但请留下足迹!


作者:wu_lai_314 发表于2013-1-7 1:54:14 原文链接
阅读:88 评论:0 查看评论

    
[3]主板放电之后 mac 无法正常启动之谜
    来源: 互联网  发布时间: 2013-11-07

前段时间,在插上带 tf 卡的读卡器的情况下打开了我的 mac 主机,之后我便陷入了一连串的麻烦之中~

平时开机都是很正常的,这次却意外的在屏幕上显示出了黑底白字的一串英文:

reboot and select proper boot device.

大意也就是叫我选择一个可以被启动的设备来重启。

我也按照文字提示做了,我拔掉了插入 tf 卡的读卡器,然后就重启了。

可即便如此,重启了以后还是之前的老样子,依然给我打印出那段文字。

就这么的搞了几次,弄得我有些心烦了,于是便拆开主机箱果断地给主板放放电,让它领教一下我的厉害。。

可我就是没想到因为这么草率的一个举动,就让我白白忙活了好几天,直到今天下午才把系统给修复回来。

说说当时的情况吧,放电了以后我匆匆忙忙地就盖好了机箱盖儿重启了,

可我等来的不是用户登陆界面,而是无止尽的白色背景缺苹果。。

后来我终于还是妥协了,我不再进主分区的系统了,我试着看能不能进入恢复分区的系统

(这个分区里面也有一个 mac 系统,用来做主分区 mac 系统的修复用~)

可是在我试了几次过后,还是失望了,主分区和恢复分区里面的两个 mac 系统竟然都进不去了~


分析一番后我怀疑是放电过后 bios 设置被还原回初始状态了,否则再怎么出问题,恢复分区里的 mac 也没理由进不去的。

同事们也给我支招,说要把 bios 里面的 ahci 选项给开启,于是我便跑到 bios 设置里面找啊找,

找了很久几乎都把 ami 的 bios 设置翻了个遍,还是没能找到带 ahci 字样的相关选项。

这之后我便进入了很长一段时间的摸索阶段,偶然在网上看到有人说有些主板默认就是开启了 ahci 选项的,即便找不到它。。。。

查阅资料了好一段时光我才获悉这完全就是误导!!!

首先我查的是 ami 的 bios 怎么开启 ahci ,找到了有用的资料,然后我知道是在南桥芯片的设置里面的。

因为我在 bios 里面鼓捣了很久,印象中南桥芯片的设置里面压根就没看到有设置 ahci 的那个选项。。

经过刻苦的搜索,我又获得了一些有用的讯息:

1。与 ahci 设置相关的封装在南桥芯片里面的硬件名叫 ich7 什么的

(有 ich5,ich6,ich7,ich7r,ich8,等等)

2。并不是所有的 ich 都支持 ahci,包括 ich5,ich6,ich7 就不支持 ahci

3。我查阅了我所使用硬盘的参数,发现我的南桥里面正是使用的 ich7

综上所述,我的南桥芯片设置里面找不到 ahci 相关的设置就不奇怪了,因为在里面的 ich7 压根儿就不支持 ahci 的功能啊~


好吧,既然不支持,那怎么才能让他支持起  ahci 模式来呢?

mac os x lion 跑起来必须要  ahci 的支持,而我的机器在正常运作的时候确实是能够运行 lion 系统的,

那么我就推断出一定是有方法能够让主板提供对 ahci 的支持的。。。

然后又是漫长的搜索了,功夫不负有心人,我找到了一个叫天缘的博客,

里面介绍了一种安装 ahci 驱动的法子,当时很开心满以为找到解决方法了,

可后来操作实施的时候却碰到了问题, 那个 ahci 驱动根本就不能装到 ich 7 里面,

原因是这样的,天缘介绍的方法有一个替换文本的操作,替换的文本就是  ich 的设备编号,可是我找不到 ich7 的编号。。

之后我又仔仔细细地看了一遍天缘写的那篇文章,它里面确实提到那种安装 ahci 驱动的方法是不能应用与 ich 7 的。

就这样我又空欢喜了一场,再次回到不知所措的状态。。。


转机是这么来的,之前和卖给我 mac 机器的技术支持人员交流了一下,

当时并没有将这个问题给解决下来,他的建议是叫我交 150 块钱重装系统

我挺犹豫的,有如下几个原因:

1。路途遥远,机器运来运去的,麻烦不说,还容易损坏,而且我也没有邮寄主机箱的经历。

2。150块钱安装费也不是一个小数字,还是有些不舍,话说我自己如果能解决这个问题的话,不仅能省钱还能学到东西。

3。盘里面的数据安全问题,我并不希望数据毁掉或者泄露掉~

正是由于上述的几个原因,我并没有按照客服技术人员说的去做~

但是后来我折腾了两日实在没耐性弄下去了,于是我想到客服的员工不仅仅只有那一位,

还有一个最大的老板在里面,而且他的旺旺一般都是在线的,何不去试试手气呢?

老板就是老板,霸气,没有客服打杂工的那种市侩,而且我自己也摸索了很长一段时间,

一针见血的就提出了自己的推测 —— 断电后 bios 里面的某个设置被弄错了,导致无法正常进入主分区和恢复分区的 mac 系统~

老板的实力刚刚的,第二句话就给出了我解决方案 —— 在 bios 设置里面将 USB 设置的 high-speed 改为 full-speed,

当时还觉得挺奇怪的,mac 不能正常启动和 usb 设置有半毛钱的关系么?

不过虽然觉得奇怪,我还是照老板说的做了,三下五除二连接好我的 mac 机器,进入 bios 设置将 USB 选项更改了一下,

完了以后重启电脑,口中不断地默念“God bless me!”,神奇的一幕出现了,我心爱的 mac 终于回复了正常。。

那一刻我简直是激动地热泪盈眶,终于弄好了,终于可以干事了,简直是太好了~


虽然系统正常的恢复了过来,但是作为一次惨痛的经历,这无时无刻不提醒着我,

一定要知之为知之,方能在以后再次碰到此类问题的时候不手忙脚乱~

第一个疑问便是—— 难道不启动主板的 ahci 选项也能正常跑起  mac lion 来?

结合我之前修复系统的过程中所查阅的一些资料来思考一番,我觉得可能存在如下的一中可能:

即便主板上没有设置 ahci 的选项,即便在没有 ahci 选项的情况下默认不是 ahci 模式,

也可以通过高层操作系统中的驱动支持来弥补这块空缺!

我是有依据的,因为之前我在 csdn 的下载频道里面看到过类似,“黑苹果 + 免 ahci 驱动” 的资源~

我还下载了一个看了一看,其实就是一个 kext 结尾的 mac os 驱动文件,名为 AppleIntelIPIIXATA.kext、ATAPortInjector.kext

然后我猜想我的黑苹果扩展驱动目录中也应该存在这些驱动文件。

奇怪的是我没有找到这些驱动文件,但是通过我所查找到的资料,也有提到还存在其他的驱动文件是提供 ahci 弥补功能的,

诸如

  PC 上安装Mac OS X(四)——安装雪豹

 这篇资料中所提到的:IOAHCIBlockStorageinjector.kext 和 AppleAHCIPort.kext 

这两个文件也是起到弥补 ahci 设置缺失的功能的

看到这里时我又跑到 mac 系统的扩展驱动目录(SLE——/System/Library/Extensions、EE——/Extras/Extensions)

里面找了一下,这次总算是有所斩获了 —— 

在 SLE 目录下我找到了 AppleAHCIPort.kext 文件,

在 EE 目录下我找到了 IOAHCIBlockStorageinjector.kext 文件, 

很吻合上面那篇资料里面所说到的情形,作者果然还是所言非虚啊~


下面手打 360doc 里面自己觉得有价值的一段文字:

导致五国的原因有很多很多,比如“你的 cpu 不支持64位和 sss3 指令集” 或者某个 kext 冲突之类的。

如果是前者,问题还算好解决。只要在 bootThink 图形界面中按 f8,输入 -x32 启动即可;

另外,对于某些只支持32位的 kext 也要使用这种方式来启动;

还有,也可以键入 cpus = 1(强制多核 cpu 使用单核)试试可不可以启动。

如果是后者,我们就要输入 -v 启动啰唆模式(Verbose)来看看问题出在哪里了。

举个粒子,输入 -v 启动之后会出现一大堆的 代码,暂时不去管他,最后他会停止在某处。

找到  panic 这个词,我们可以在这下面看到问题所在 。panic 原本是 恐慌的意思,

在这里表示系统遇到致命错误。假设错误代码如下面所示,我们就知道问题处在 AppleIntelCPUPowerManagement,

查询一些资料就知道只要安装 NullCPUPowerManagement.kext 即可解决问题。

依次类推,其他问题也可以按照这个思路下去。



作者:yang3wei 发表于2013-1-7 1:38:49 原文链接
阅读:82 评论:0 查看评论

    
最新技术文章:
▪error while loading shared libraries的解決方法    ▪版本控制的极佳实践    ▪安装多个jdk,多个tomcat版本的冲突问题
▪简单选择排序算法    ▪国外 Android资源大集合 和个人学习android收藏    ▪.NET MVC 给loading数据加 ajax 等待loading效果
▪http代理工作原理(3)    ▪关注细节-TWaver Android    ▪Spring怎样把Bean实例暴露出来?
▪java写入excel2007的操作    ▪http代理工作原理(1)    ▪浅谈三层架构
▪http代理工作原理(2)    ▪解析三层架构……如何分层?    ▪linux PS命令
▪secureMRT Linux命令汉字出现乱码    ▪把C++类成员方法直接作为线程回调函数    ▪weak-and算法原理演示(wand)
▪53个要点提高PHP编程效率    ▪linux僵尸进程    ▪java 序列化到mysql数据库中
▪利用ndk编译ffmpeg    ▪活用CSS巧妙解决超长文本内容显示问题    ▪通过DBMS_RANDOM得到随机
▪CodeSmith 使用教程(8): CodeTemplate对象    ▪android4.0 进程回收机制    ▪仿天猫首页-产品分类
▪从Samples中入门IOS开发(四)------ 基于socket的...    ▪工作趣事 之 重装服务器后的网站不能正常访...    ▪java序列化学习笔记
▪Office 2010下VBA Addressof的应用    ▪一起来学ASP.NET Ajax(二)之初识ASP.NET Ajax    ▪更改CentOS yum 源为163的源
▪ORACLE 常用表达式    ▪记录一下,AS3反射功能的实现方法    ▪u盘文件系统问题
▪java设计模式-观察者模式初探    ▪MANIFEST.MF格式总结    ▪Android 4.2 Wifi Display核心分析 (一)
▪Perl 正则表达式 记忆方法    ▪.NET MVC 给loading数据加 ajax 等待laoding效果    ▪java 类之访问权限
▪extjs在myeclipse提示    ▪xml不提示问题    ▪Android应用程序运行的性能设计
▪sharepoint 2010 自定义列表启用版本记录控制 如...    ▪解决UIScrollView截获touch事件的一个极其简单有...    ▪Chain of Responsibility -- 责任链模式
▪运行skyeye缺少libbfd-2.18.50.0.2.20071001.so问题    ▪sharepoint 2010 使用sharepoint脚本STSNavigate方法实...    ▪让javascript显原型!
▪kohana基本安装配置    ▪MVVM开发模式实例解析    ▪sharepoint 2010 设置pdf文件在浏览器中访问
▪spring+hibernate+事务    ▪MyEclipse中文乱码,编码格式设置,文件编码格...    ▪struts+spring+hibernate用jquery实现数据分页异步加...
▪windows平台c++开发"麻烦"总结    ▪Android Wifi几点    ▪Myeclipse中JDBC连接池的配置
▪优化后的冒泡排序算法    ▪elasticsearch RESTful搜索引擎-(java jest 使用[入门])...    ▪MyEclipse下安装SVN插件SubEclipse的方法
▪100个windows平台C++开发错误之七编程    ▪串口转以太网模块WIZ140SR/WIZ145SR 数据手册(版...    ▪初识XML(三)Schema
▪Deep Copy VS Shallow Copy    ▪iphone游戏开发之cocos2d (七) 自定义精灵类,实...    ▪100个windows平台C++开发错误之八编程
▪C++程序的内存布局    ▪将不确定变为确定系列~Linq的批量操作靠的住...    ▪DIV始终保持在浏览器中央,兼容各浏览器版本
▪Activity生命周期管理之三——Stopping或者Restarti...    ▪《C语言参悟之旅》-读书笔记(八)    ▪C++函数参数小结
▪android Content Provider详解九    ▪简单的图片无缝滚动效果    ▪required artifact is missing.
▪c++编程风格----读书笔记(1)    ▪codeforces round 160    ▪【Visual C++】游戏开发笔记四十 浅墨DirectX教程...
▪【D3D11游戏编程】学习笔记十八:模板缓冲区...    ▪codeforces 70D 动态凸包    ▪c++编程风格----读书笔记(2)
▪Android窗口管理服务WindowManagerService计算Activity...    ▪keytool 错误: java.io.FileNotFoundException: MyAndroidKey....    ▪《HTTP权威指南》读书笔记---缓存
▪markdown    ▪[设计模式]总结    ▪网站用户行为分析在用户市场领域的应用
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3