- Gmsh教程
网卡了
GmshpythonGmsh
13、在没有底层CAD模型的情况下重新擦除STL文件importgmsh#导入Gmsh库,用于几何建模和网格划分importmath#导入数学库,用于计算importos#导入操作系统库,用于处理文件路径importsys#导入系统库,用于处理命令行参数gmsh.initialize()#初始化Gmsh环境defcreateGeometryAndMesh():#清除之前的模型和数据gmsh.cle
- 第六章第六节:C++STL之priority_queue(优先级队列)和仿函数
快乐江湖
队列c++queue优先级队列栈
pdf获取:7281文章目录一:priority_queue(优先级队列)(1)堆与堆排序(2)基本使用(3)“TOPK”问题(4)模拟实现二:仿函数(1)仿函数是什么(2)使用仿函数完成大顶堆和小顶堆的构建一:priority_queue(优先级队列)priority_queue(优先级队列):在头文件中,除了基本的queue外,还有一个特殊的priority_queue,翻译过来是优先级队列的
- 【C++篇】深入剖析C++ Vector底层源码及实现机制
far away4002
C++c++开发语言vectorvisualstudiovscode
文章目录须知欢迎讨论:如果你在学习过程中有任何问题或想法,欢迎在评论区留言,我们一起交流学习。你的支持是我继续创作的动力!点赞、收藏与分享:觉得这篇文章对你有帮助吗?别忘了点赞、收藏并分享给更多的小伙伴哦!你们的支持是我不断进步的动力!分享给更多人:如果你觉得这篇文章对你有帮助,欢迎分享给更多对C++感兴趣的朋友,让我们一起进步!全面剖析vector底层及实现机制接上篇:【C++篇】探索STL之美
- C++标准模板(STL)- 类型支持 (杂项变换,将 std::remove_cv 与 std::remove_reference 结合,std::remove_cvref)
繁星璀璨G
#杂项变换c++标准库模板运行时类型识别杂项变换remove_cvref
类型特性类型特性定义一个编译时基于模板的结构,以查询或修改类型的属性。试图特化定义于头文件的模板导致未定义行为,除了std::common_type可依照其所描述特化。定义于头文件的模板可以用不完整类型实例化,除非另外有指定,尽管通常禁止以不完整类型实例化标准库模板。杂项变换将std::remove_cv与std::remove_reference结合std::remove_cvreftempla
- ex的OOP------STL函数对象
MityKif
OOP面向对象编程
STL函数对象1.函数的类型平时敲代码的时候会遇到很多情况,对某一类的函数调用多次。我们可以用函数模板来解决,当然也可以用某个变量表示函数。于是这里就需要用到函数的类型。事实上,函数的类型是不太方便写的。例如:voidfunc(int&k){k++;}对于这样一个函数,它的类型是void(*)(int&)定义一个变量的时候:void(*fff)(int&)但是实际上平时不会这么用,因为我们有无敌的
- React 相关插件之 Redux 基本使用入门
前端reactredux
引入和定义首先,你需要创建Store实例并暴露出来://stores/login.store.jsconstloginInstance=(preState,action)=>{switch(action.type){//修改状态case"changeLoginState":preState.isLogin=action.loginFlag=='YES'?true:falsereturnpreSta
- 记录学习的第七天
xiufeia
学习
还是老规矩,力扣的每日一题这道题我的思路是有了,不过在实现思路的时候遇到很多问题我首先也是想到了用一个哈希表之类的把出现次数最多的元素依次记录下来,然后再进行分配,不过由于我的STL不太熟练,所以我用的方法存在问题我的思路与题解的思路存在最大的差异就是,题解是根据每一行来存的,而我想的是每一列进行存元素。接着写了两道滑动窗口的题。滑动窗口需要注意的就是外循环扩展右指引,内循环扩展左指引,然后进行出
- vue中ref解析
肉肉不吃 肉
vue.jsjavascript前端
在Vue项目中,ref是一个非常重要的概念,用于创建对DOM元素或组件实例的引用。它在多种场景下都非常有用,特别是在需要直接操作DOM或与子组件进行交互时。ref的作用1.获取DOM元素使用ref可以获取到模板中的DOM元素,并对其进行操作。创建了一个对组件的引用,可以在脚本中通过loginForm.value访问该元素。示例:constloginForm=ref(null)//在setup函数中
- 蓝易云 - 【C++STL基础入门】string类的基础使用
蓝易云
c++javalinuxokhttp开发语言架构
C++的STL(标准模板库)中的string类是用于操作字符串的重要工具。以下是string类的基础使用方法:包含头文件:首先,要使用string类,需要包含头文件。定义和初始化:可以通过以下方式定义和初始化string对象:stringstr1;//默认构造函数,创建空字符串stringstr2="Hello,world!";//使用字符串字面量初始化stringstr3(str2);//使用另
- 7.7:C++的 STL迭代器的分类和使用!(课程共7300字,8个代码举例)
小兔子平安
C++完整学习全解答c++开发语言
例子1:使用输入迭代器读取文件中的数据例子2:使用输出迭代器将数据写入文件例子3:使用双向迭代器反转容器中的元素例子4:使用随机访问迭代器进行二分查找例子1:使用输入迭代器读取文件中的数据下面的代码演示了如何使用输入迭代器从文件中读取数据,并计算其平均值。#include#include#include#includeintmain(){std::ifstreamfile("data.txt");
- C++中map和set的详解
黑猫Teng
c++算法开发语言
C++中map和set的介绍与使用在C++编程中,map和set是标准模板库(STL)中两种非常重要的关联容器。它们基于平衡二叉搜索树(通常是红黑树)的数据结构来实现,提供了高效的数据存储和检索功能。本文将详细介绍map和set的特点、用法以及一些常见的操作示例。一、map的介绍与使用1.map的基本概念map是一个键值对容器,其中每个键都是唯一的,且按照升序排序。map的内部结构是红黑树,这使得
- JAVA中List数组与泛型
Yeauty
java泛型
去除ArrayList中重复字符串元素方式A:案例演示需求:ArrayList去除集合中字符串的重复值(字符串的内容相同)思路:创建新集合方式/***A:案例演示*需求:ArrayList去除集合中字符串的重复值(字符串的内容相同)*思路:创建新集合方式*/publicstaticvoidmain(String[]args){ArrayListlist=newArrayList();list.ad
- STL——排序算法(merge、sort、random_shuffle、reverse)
Soaring丶
STL排序算法c++算法
#define_CRT_SECURE_NO_WARNINGS#include#include#include#include#include#includeusingnamespacestd;//merge算法容器元素合并,并存储到另一容器中voidtest01(){vectorv1;vectorv2;for(inti=5;i>=0;i--){v1.push_back(i+1);v2.push_b
- C++ STL(十四):常用排序算法(sort、random_shuffle、merge、reverse)
NewsomTech
C++泛型编程和STL排序算法sortrandom_shufflemergereverse
文章目录0常用排序算法简介【sort、random_shuffle、merge、reverse】1sort【对容器元素排序】2random_shuffle【洗牌:对指定范围的容器元素随机排序】3merge【合并两个容器的元素,并存储至新容器中】4reverse【反转容器元素】0常用排序算法简介【sort、random_shuffle、merge、reverse】算法简介:sort:对容器元素排序。
- c++STL常用算法之排序算法——全面总结(附案例解析)(二十四)
磊磊cpp
C/C++STL详细教学C++STL
这里有C++STL——全面总结详细教程(附案例解析)(持续更新中)常用排序算法学习目标:掌握常用的排序算法算法简介:sort//对容器内元素进行排序random_shuffle//洗牌指定范围内的元素随机调整次序merge//容器元素合并,并存储到另一容器中reverse//反转指定范围的元素sort功能描述:对容器内元素进行排序函数原型:sort(iteratorbeg,iteratorend,
- 猴子选大王C++STL--list
JPC客栈
c++算法开发语言
【问题描述】n只猴子围坐成一个圈,按顺时针方向从1到n编号。然后从1号猴子开始沿顺时针方向从1开始报数,报到m的猴子出局,再从刚出局猴子的下一个位置重新开始报数,如此重复,直至剩下一个猴子,它就是大王。设计并编写程序,实现如下功能:(1)要求由用户输入开始时的猴子数n、报数的最后一个数m。(2)给出当选猴王的初始编号。【输入形式】输入两个数据,分别是猴子数和报数的最后一个数,数据之间一个空格隔开。
- [18] C++STL容器篇之链表list
Cukor丘克
C++学习数据结构链表c++list
C++STL容器篇之链表list文章目录C++STL容器篇之链表listC++STL的list的底层原理list的创建方式list的遍历方式list的一些常用的成员函数主函数测试一下C++STL的list的底层原理其实它的底层就是数据结构的双向链表。可以从头遍历,也可以从尾遍历的那个,但不是循环的。在STL中就把这样的一个双向链表封装成一个类,方便开发人员直接使用,避免重复造轮子。list的创建方
- C++ STL教程-list
yhwang-hub
C++
目录C++list(STLlist)容器完全攻略(超级详细)C++STLlist迭代器及用法(详解版)C++STLlist删除元素详解C++list(STLlist)容器完全攻略(超级详细)STLlist容器,又称双向链表容器,即该容器的底层是以双向链表的形式实现的。这意味着,list容器中的元素可以分散存储在内存空间里,而不是必须存储在一整块连续的内存空间中。图1展示了list双向链表容器是如何
- 9、STL中的multimap使用方法
周Echo周
STLc++开发语言数据结构后端算法链表
一、了解multimap是一个允许键(key)重复的关联容器。适合用于一对多的更新。允许多个键拥有相同的值。基于红黑树。multimap特性键允许重复:允许多个键有相同的值。无[]运算法:禁止用下标访问,因为键不唯一。排序:默认升序规则,可以自定义。性能:基于红黑树的实现。时间复杂度:插入/删除/查找是O(logn)不支持直接修改键:键是排序好的。直接修改会改变顺序。如果要修改,先删除要修改的键,
- 09.【C++】list链表(STL中的列表容器,C++封装的带头双向链表,可实现指定类型的增删查改,迭代器操作等功能)
..过云雨
C++c++开发语言
目录一.list的介绍及使用1.1list的介绍1.2list的使用1.2.1list的构造1.2.2listiterator迭代器的使用1.2.3listsize&empty大小判空1.2.4listelementaccess头尾引用1.2.5listmodifiers增删查改1.2.6list的迭代器失效1.2.7list排序的使用二.list的模拟实现2.1模拟实现list三.list与ve
- 数据结构-单链表基本操作的实现
Xiao_Ya__
数据结构考研c语言数据结构算法链表
CreateList_R(LinkList&L,intn):后插法创建单链表——时间复杂度O(n)GetElem(LinkListL,inti,ElemType&e):单链表的取值——时间复杂度O(n)LocateElem(LinkListL,ElemTypee):单链表的按值查找——时间复杂度O(n)ListInsert(LinkList&L,inti,ElemTypee):单链表的插入——时间
- Node7z正确识别中文字符
霄铭XiAo
nodejsnode-7ztypescript
importseven7zfrom'node-7z';constlistStream=seven7z.list(filePath,{$bin:path7z(),charset:'UTF-8'});仅需设置charset即可
- AcWing 3533:查找第K小数 ← STL map
hnjzsyjyj
信息学竞赛#STL标准库STLmap
【题目来源】https://www.acwing.com/problem/content/3536/【题目描述】查找一个长度为n的数组中第k小的数。注意,相同大小算一样大,如213452中,第三小的数为3。【输入格式】第一行包含整数n。第二行包含n个整数,表示数组中元素。第三行包含整数k。【输出格式】输出第k小的整数。数据保证有解。【数据范围】1≤k≤n≤1000数组中元素取值范围[1,10000
- 7、标准库的string的常见使用
周Echo周
STLc++开发语言算法数据结构推荐算法leetcode蓝桥杯
一、了解string其实不完全算STL库中的。在C++中,string是标准库提供的用于处理动态字符序列的类(位于头文件),相比C风格的字符数组(char[]或char*),string提供更安全、更便捷的操作。使用的头文件#include二、初始化stringname;//创建一个空的stringstringname("数据");//创建一个字符串值为“数据”的stringstringname=
- 【APM】Loki日志多行显示
运维归一
DevOpsAPMloki日志并行
上一篇文章我们搭建了Alertmanager和Loki,接下来我们来实现日志并行显示专栏:https://blog.csdn.net/zhanremo3062/category_12552674.html我们只需要修改Promtail服务的配置文件即可multiline:#RE2正则表达式,如果匹配将开始一个新的多行日志块#这个表达式必须被提供firstline:#解析的最大等待时间(Godura
- Mybatis传递多个不同类型的参数
我的身前一尺是我的世界
Mybatis传递多个参数
一、同时传递List和String实现类@OverridepublicListfun(StringshopId,Listlist){Mapmap=newHashMap();map.put("shopId",shopId);map.put("list",list);ListlistCommodity=appCommodityMapper.fun(map);returnlistCommodity;}m
- C++ list
azaz_plus
C++c++STLlist
1.std::list基本概念定义:std::list是C++标准库提供的带头(哨兵位)双向循环链表容器,支持高效的元素插入和删除。头文件:#include2.构造函数(1)默认构造函数listlist1;//创建一个空list,size=0(2)指定初始大小和默认值listlist2(5);//5个元素,默认初始化(int为0)listlist3(5,3.14);//5个元素,每个值为3.14(
- AI技术学习笔记系列001:FastLanguageModel.get_peft_model 函数各参数的详细解释
新说一二
人工智能学习笔记
以下是关于代码中FastLanguageModel.get_peft_model函数各参数的详细解释,以及企业实际微调时的选择考量:参数详解及对微调的影响1.r=32(秩)作用:控制LoRA适配器的低秩矩阵的维度(秩),直接影响可训练参数数量。影响:r越大:适配器表达能力更强,能捕捉更复杂的任务特征,但可能导致过拟合(尤其数据量少时),训练时间和显存占用增加。r越小:参数量少,训练更快,显存占用低
- STL学习笔记
2301_76962440
c++学习笔记
包含数据结构和数学函数#includeusingnamespacestd;boolcmp(paira,pairb){//第二位从小到大if(a.second!=b.second)returna.secondb.first;}intgcd(inta,intb){if(!b)returna;elsereturngcd(b,a%b);}intlcm(inta,intb){returna/gcd(a,b)
- ARMv7 汇编在线调试工具
qiuzen
nodenpmlinux前端
推荐一个可以调试armv7汇编的在线IDE:CPUlatorARMv7SystemSimulator(01xz.net)https://cpulator.01xz.net/?sys=arm在editor中填入:.text.global_start_start:ldrr1,=srcldrr0,=dstldrr3,=lenmove:cmpr3,#1bccendldrbr2,[r1]strbr2,[r0
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http