必须阅读的C + +内存管理文章

看完“ C + +内存管理:从恐惧到胜利 “系列,我想你应该阅读的内存管理的文章。我不知道还有什么要读不可错过的文章。

谢谢!


用户St3fan回答:

虽然不是一个真正的文章,我认为上升smart_ptr库文件对内存管理良好的信息C + +。当然,这是有失偏颇的钢筋库,但我认为它会从它那里得到一些很好的想法。


用户贾甘说:

中草药治疗萨特在他的著作“卓越C + +”和“C + +更出色。”关于内存管理


用户mloskot回答:

阅读和学习的良好RAII语言, 资源获取就是初始化的文章,以下两种:


用户BitShift回答:

一些基础知识:

内存作为C和C + +编程概念

弗朗齐歇克Franek

剑桥大学出版社

ISBN 0-521-52043-6


用户Poluektov亚历山大说:

安德烈Alexandrescu在他的话要说现代C + +设计书。有兴趣的可能

  • 第4章。小对象分配
  • 第7章。智能指针

虽然安德烈有争议的实用价值的技术,毫无疑问这本书学习一些新的和有趣的事情。


这段文字,已获得原始源Stackoverflow.com



Related Posts

TRUNC()的JavaScript - 2012-05-17 14:00

我想在JavaScript中截断数

 trunc(2.6)==2 

用户丹尼尔瓦萨洛说:

对于正数:

 Math.floor(2.6) == 2; 

对于负数:

 Math.ceil(-2.6) == -2; 

用户CMS回应:

作为一种补充丹尼尔@的回应,“如果你想一直向零截断,您可以:

 function truncate(n) { return n | 0; // bitwise operators convert operands to 32-bit integers } 

或:

 function truncate(n) { return Math[n > 0 ? "floor" : "ceil"](n); } 

双方都给予足够的正数和负数的结果:

 truncate(-3.25) == -3; truncate(3.25) == 3; 

用户Bazalik玛丽安说:

是什么

 function truncate(n) { Math.round(n - 0.5); } 

这段文字,已获得原始源Stackoverflow.com


怎么样,使用jQuery,我能得到一个HTML的img元素的src属性? - 2012-05-17 14:00

当您移动鼠标光标图像,我想显示一个alert()载有形象价值src属性。我将如何着手实现吗?


用户Relkin雅各布回答说:

JavaScript的:

 function alertSource( image ) { alert( image.src ); } 

HTML:

 <img src="path/to/image" onmouseover="alertSource(this);" alt=""/> 

您不需要为这个jQuery的。


用户E标志回答:

您可以使用鼠标悬停事件。

如果你有

 <img src='foo.jpg' id='bar'> 

您可以像jQuery代码

 $('#bar').mouseover(function(){ alert($(this).attr('src')); }); 

(如果这也失败,你可以尝试更换$(this)与$('#酒吧“),但在评论中指出的是很丑陋)

编辑:错过了需要显示的src属性首次通过..


用户迦勒说:

 <img src="some_img.gif"> <script> $("img").bind("mouseover",function(){ alert($(this).attr("src")); }); </script> 

用户大卫回答说:

 $('img').mouseover(function() { alert( this.src ); }); 

这段文字,已获得原始源Stackoverflow.com


error_class形式的Django - 2012-05-17 14:00

有没有办法给一个错误中的一个特殊形式的代表根据表单的定义是什么?在本文档中的个性化的误差列表格式显示了如何给一个错误的表示功能的一种特殊形式,但它似乎被宣布时,实例的形式,而不是在定义它。

所以,你可以定义一个类ErrorList为:

 from django.forms.util import ErrorList class DivErrorList(ErrorList): def __unicode__(self): return self.as_divs() def as_divs(self): if not self: return u'' return u'<div class="errorlist">%s</div>' % ''.join([u'<div class="error">%s</div>' % e for e in self]) 

然后当你实例化你的表格可与该error_class创建一个实例:

  f = ContactForm(data, auto_id=False, error_class=DivErrorList) f.as_p() <div class="errorlist"><div class="error">This field is required.</div></div> <P>标题:<input type="text" name="subject" maxlength="100" /> </ P>消息:<INPUT TYPE =“文本”名称=“消息”值=“你好”/ > </ P> <div class="error"> <div class="errorlist">写一个有效的电子邮件。 </ DIV> </ DIV> <P发件人:名称=“发件人”地址“值=”无效的电子邮件<input type="text" /> </ P> I CC:输入<=检查“检查”类型=“复选框”名称=“cc_myself”/> </ P> 

但我不希望每次的错误形式的一个实例名称,只有一个方法来定义范围内的表单定义自定义错误处理器?


用户丹尼尔说:

尝试以下方法:

 class MyForm(forms.Form): ... def __init__(self, *args, **kwargs): super(MyForm, self).__init__(*args, **kwargs) self.error_class = DivErrorList 

应该工作。但我没有测试。


用户克莱门特说:

如果希望此行为是所有形式,可以有自己的类为基础的定义是:

 class MyBaseForm(forms.Form): DEF __init__(ARGS *我,** kwargs):kwargs_new = {'error_class:DivErrorList}。 kwargs_new.update(kwargs)超(MyBaseForm,其他)__init__(* ARGS我kwargs_new **) 

然后让所有的子类,这样一个。然后,所有的形式将DivErrorList作为默认处理器错误,你仍然可以改变error_class说法。

注意:你必须做同样的ModelForm


这段文字,已获得原始源Stackoverflow.com


如何“用户名,密码”在Django登记变更的电子邮件登录的密码“ - 2012-05-17 14:00

我想一个例子。感谢


将哈迪说:

你不能轻松存储电子邮件django.contrib.auth.model.User的用户名场“,所以你需要一个不同的认证后端。广场下面的某 ​​处,并添加其路径AUTHENTICATION_BACKENDS 。查看http://docs.djangoproject.com/en/dev/topics/auth/#写- A认证后端

 from django.contrib.auth.models import User class EmailBackend(object): """ Authenticates against the email field of django.contrib.auth.models.User """ def authenticate(self, email=None, password=None): # Try using the email if it is given if email: for user in User.objects.filter(email=email): if user.check_password(password): return user def get_user(self, user_id): try: return User.objects.get(pk=user_id) except User.DoesNotExist: return None 

然后,在他看来,调用验证django.contrib.auth.authenticate

有两点考虑:

  • 你可能要保持默认AUTHENTICATION_BACKEND存在,特别是如果你想使用Django的admin。
  • 如果用户没有签署一个用户名,你必须为他们创造一个。我用的是一个UUID基地64版

设置在一个方法的用户名储存的地方(例如,新用户的形式):

 import uuid, binascii username = binascii.b2a_base64(uuid.uuid4().bytes) 

这段文字,已获得原始源Stackoverflow.com


Flex的阵列图像旋转号 - 2012-05-17 14:00

我怎么可以旋转图像,例如。 180度,使用权矩阵

我可以用下面的代码来旋转图像90度,但它是渐进的,Meaing

 var matrix:Matrix = new Matrix(); matrix.rotate(Math.PI/2); matrix.tx = imgControl.content.height; var bitmapData:BitmapData = new BitmapData(imgControl.content.height, imgControl.content.width); bitmapData.draw(imgControl.content, matrix); imgControl.source = new Bitmap( bitmapData); 

每次运行代码从图像旋转90度。

我想要的是每次增加90,但旋转180明确,rotate90等。

我不熟悉的矩阵,但我想,它使真正的BitmapData操作,只是不以身作则。旋转图像的住房部分(停止如果我错了)。

如果是这样,我猜你要恢复的形象,每次我做转动旋钮。

我缺少的东西?

感谢任何意见和建议提前


用户半狄- T说:

矩阵有没有真正的BitmapData操纵。

bitmap.draw呼叫接收到imgcontrol.content位图旋转后的图像,在你的代码imgcontrol.content与旋转图像覆盖。

例如,代码了,是的,你需要重新从以前每次旋转划伤的形象,否则将要不停的旋转跟踪一个变量,计算有多少次你不得不转向达到所需的旋转。

如果您需要在一个旋转的多步90度,然后更换

 matrix.rotate(Math.PI/2); 

 matrix.rotate(Math.PI/2 * howmanytimesyouwanttorotateby90degrees); 

这段文字,已获得原始源Stackoverflow.com


创建管理。 NET数组没有初始化所有零 - 2012-05-17 14:00

看看下面的C#方法:

 static double[] AddArrays(double[] left, double[] right) { if (left.Length != right.Length) { throw new ArgumentException("Arrays to add are not the same length"); } double[] result = new double[left.Length]; for (int i = 0; i < left.Length; i++) { result[i] = left[i] + right[i]; } return result; } 

我明白,CLR将初始化result为全零,虽然AddArrays即将开始完全反正。有什么办法来避免这种额外的工作?即使这意味着使用不安全的C#,C + + / CLI,或原始IL代码?

编辑:你不能做说明理由, 在这里


用户乔尔Coehoorn回答:

你必须做到以下几点:

 static IEnumerable<double> Add(IEnumerable<double> left, IEnumerable<double>右){使用(IEnumerator的<double> left.GetEnumerator升=())使用(IEnumerator的<double> right.GetEnumerator R =()){而(l.MoveNext()&&r.MoveNext()){回报表现l.Current r.Current +;}如果(l.MoveNext()| r.MoveNext())|抛出新的ArgumentException(“,并称没有序列是相同的长度");}} 

矩阵可以花此功能的两倍。如果你真的需要一个作为结果(提示:可能不是)阵列只能调用.ToArray()函数的返回值。

。 NET 4将对已经为此建立:

  double[] array1 = {1.0, 2.0, 3.0}; double[] array2 = {4.0, 5.0, 6.0}; IEnumerable<double> result = array1.Zip(array2, (a,b) => a + b); foreach(double d in result) { Console.WriteLine(d); } 

这段文字,已获得原始源Stackoverflow.com


是身份验证插件,与DataMapper的工作? - 2012-05-17 14:00

我本人是一种身份验证方法,与DataMapper的工程。我可以看到,插件需要领域authlogic

  crypted_password, password_salt, persistence_token 

在用户模式。是否足以仅添加字段的用户使用DataMapper的模型的定义?


用户约翰Feminella回答

应该比这复杂,因为API是很大的DataMapper的和ActiveRecord不同。但是,似乎至少有一人在与你相同波长。看看这张票 ,其中有一个这个链接pastie authlogic集成了用户模型使用DataMapper


用户詹姆斯说:

simplest_auth

DataMapper的支持


这段文字,已获得原始源Stackoverflow.com


JQuery的IE6问题 - 2012-05-17 14:00

嗨伙计,

任何人都可以看到任何具体的,可能会导致与在Internet Explorer 6 jQuery的问题?没有项目被加载的jQuery在IE6所有。所有其他的浏览器都很好!非常感谢您的帮助!

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>{tag_pagetitle}</title> <script type="text/javascript" src="/js/jquery-1.3.2.min.js"></script> <script type="text/javascript" src="/js/jquery-ui-1.7.custom.min.js"></script> <link rel="stylesheet" href="/stylesheets/tabs.css" type="text/css" media="screen, projection" /> <link href="/stylesheets/main.css" rel="stylesheet" type="text/css" /> <link href="/stylesheets/gallery-1.0.1.css" rel="stylesheet" type="text/css" /> <link href="/stylesheets/forms.css" rel="stylesheet" type="text/css" /> <link href="/facebox/facebox.css" rel="stylesheet" type="text/css" /> <meta content="text/html;字符集= UTF - 8“HTTP - EQUIV =”内容类型“/> <! - [如果IE]> <链接类型=”文/ CSS“REL =”样式的“href =”/样式/ ie.css“BC =“1”/> <[ENDIF] - > <! - [如果IE 6]> <链接类型=“文/ CSS”REL =“样式的”href =“/ stylesheets/ie6site.css”BC =“1” /> <[ENDIF] - > </ HEAD> <body ID = "gallerydetail" ID = "site"> SPAN> <IMG SRC =“htt​​p://thecr​​eativealliance.org/images/top-corners_03.gif”宽度= “900”标题=“3”ALT =“”/ ID =“旗帜”>> <格<IMG ALT =“”SRC =“htt​​p://thecr​​eativealliance.org/images/site/creative-alliance-logo.jpg “/> <div "cerrar sesión" ID = {class = "entrada-reg-link"> module_whosloggedin,输入/} </ DIV> <H1>样本库</ H1> </ DIV> <div的ID =”菜单“> {module_menu,脚本= 550428}类型>”文/ JavaScript的http://cdn.socialtwist.com/2010010232558-1/script.js =“”SRC“> </ SCRIPT> <A HREF =”C - TAF “HREF =”http://tellafriend.socialtwist.com:80“的onclick =”返回false;“的风格=”边界:0;填充:0;保证金:0;“> ALT <IMG SRC =”SocialTwist告诉我的朋友“的风格=”边界:0;填充:0保证金:0;“SRC =”http://images.socialtwist.com/2010010232558- 1/button.png“onmouseout =”STTAFFUNC.hideHoverMap(本)“的onmouseover =”STTAFFUNC.showHoverMap(这'2010010232558 - 1“,window.location的,document.title)”的onclick =“STTAFFUNC.cw(这一点,{ ID:'2010010232558 - 1:窗口的链接,而是标题document.title})“/> </ A> <div class="header-search">窗体名称<=”catsearchform1870“的方法? =“POST”ACTION =“/ Default.aspx的网站搜索= 852&ID =搜索results.htm”级=“cmxform”>类<fieldset> <LI> <OL>输入<=“cat_textbox_smallish”类型=“文本“名称=”CAT_Search“ID =”CAT_Search“值=”搜索“的onblur =”如果(this.value =='') {this.value ='搜索';}“的onfocus =”如果(this.value == “搜索”){this.value '';}" = /> </ LI> <LI> <INPUT TYPE =“图像”SRC =“/ images/go-btn_12.png”级=“登录按钮”值=“搜索”/> </ LI> </ OL> </ <fieldset> /> <形式/ DIV> </ DIV> {} tag_pagecontent类=“画廊连拍”> <格<class="clr"> / DIV> </ DIV>类=“CLR”ID“> =”中心{module_contentholder,6762} <<div class="clr"> / DIV> </ DIV> </ DIV>脚本的src <=“/ Facebox / facebox.js”类型=“文/的javascript”> </ SCRIPT> <脚本类型=“文/ JavaScript的”SRC =“/ JS / jquery.trilemma.js”> </ SCRIPT> <脚本类型=“文/ JavaScript的”SRC =“/ js/jquery.truncate-2.3-pack.js “> </ SCRIPT> <script type="text/javascript" src="/js/jquery.galleriffic.js"> </ SCRIPT> <script类型= "text / javascript" jQuery>(文件)就绪(函数( $){$('A [REL *= Facebox]')Facebox({loading_image:“电子邮件”... ...“loading.gif,close_image”closelabel.gif'})$()每个函数((。 ){VAR苯丙胺类兴奋剂,点,E,I,ATS = ['A','(一)“,”[1]“],分= ['点','(点)”,“[点]'] ,地址= $(本)HTML();为(i = 0;我+ +我ats.length <){地址= address.replace(ATS [I] ,'@');}为(i = 0;我dots.length <我+ +){地址= address.replace(点[我],'.');} $(本)HTML(“<A HREF =”邮寄地址: “+地址+地址+'"..>' twitswitch.text +'</ A >');}) $('twitswitch')每个函数((){VAR $ twitswitch = $(本),如果($ ()=='') {$('#twitterlink')();.}});隐藏('。LinkSwitch的)每个函数((){VAR = $ $ $ twitswitch(本),如果($ twitswitch 。文本(){==''). $('#linkedinlink')();}}),隐藏$()为每个函数((){VAR $ twitswitch = $(本)“faceswitch';。如果($ twitswitch.text()=='') {$('#facebooklink')如果($(". twitswitch ();.}});隐藏“)HTML()==”“&&$ 。(".." faceswitch“LinkSwitch的。”)HTML()==“”&&$()HTML()==“”){$(“#orconnect。”)隐藏();} IF($( “#appswitch:包含(”是')").长度){$(“#reviewhold,#片段- 4 -醇时,#片段- 4 -介绍”)。隐藏();显示$(“猫当选")... ();}瓦尔$标签= $('#标签')标签();.. $(“。用户界面标签面板“每个功能)((I){VAR TotalSize = $(”用户界面标记面板“。)尺寸() - 1;如果(i = TotalSize){下= I + 2,$ (向东)追加(“<a HREF REL ='#'类='motor新pestaña' = '"+ along'> +”<SPAN>下一页» </ SPAN> </ A>!“); }如果(i = 0){最后=我;!$(本)追加(“<a HREF =类='motor anterior-ficha''#' REL = previous'"+ +"'> <SPAN>”上一页</ SPAN> </ A >");}}), $('..新标签,标签上面。“)点击(函数(){$ tabs.tabs('选择',$ (向东)ATTR(“REL ").);返回false;})$('。tofour)点击(函数(){/ /绑定单击事件链接tabs.tabs $('选择', 4)/ /切换到返回false ;});});第五标签</ SCRIPT> <script type="text/javascript"> $(函数(){jQuery的('请选择 - 猫“。)Trilema({最大:3,disablelabels:真});}); </ SCRIPT> <script type="text/javascript"> jQuery的(文件)就绪(函数($){IF($(“#注销。包含(“退出')").长度){。 $(“#登出”)追加(“或HREF =”/管理“> <样品修改</ A >');}. IF($(”显示格式连拍H2:包含(“添加您的橱窗” )“)。长度){$(”#旗帜H1“)HTML。 (“魅力管理”);} IF($(“显示格式连拍H2:包含('.')").编辑窗口长度){$(”#旗帜H1“)HTML(”展示管理»);.}});. jQuery的(文件)就绪(函数($){VAR画廊= $('大拇指#')galleriffic({延迟:3000,/以毫秒为单位/ numThumbs:20,/ /数量的图像显示preloadAhead页:40 / /设置为-1 enableTopPager预紧所有图片:假的,enableBottomPager:真,maxPagesToShow:7 / /的最大页数显示imageContainerSel定位器的顶部或底部:'#幻灯片“controlsContainerSel:renderSSControls”经理#':未定义captionContainerSel:'#传说“loadingContainerSel:真,/ /指定是否听介绍和链接暂停renderNavControls教:真,/ /指定是否Next和Previous链接到演示文稿应提供playLinkText:pauseLinkText“播放”:prevLinkText“暂停”,“上”,nextLinkText“下一步”nextPageLinkText:,EnableHistory'<上一页::“下一步>”prevPageLinkText假的,/ /指定URL的和历史的浏览器缓存散列必须更新时的电流变化enableKeyboardNavigation展示形象:真实的,/ /指定是否导航键盘启用自动启动:假的,/ /指定是否应该打的文稿或暂停时,页面加载syncTransitions第一:假的,/ /指定是否输出和转移同时发生或显然defaultTransitionDuration:1000 / /如果你使用默认转换,指定转换onSlideChange时间:未定义,/ /接受,如委托:功能(PREVINDEX,NEXTINDEX){... OnTransitionOut}:未定义,/ /接受委托,如:功能(幻灯片,标题,回调isSync){... OnTransitionIn}:未定义,/ /接受一个这样的代表:功能(幻灯片,标题,isSync){... OnPageTransitionOut}:未定义,/ /接受一个这样的代表:函数(回调){... OnPageTransitionIn}:未定义,/ /接受一个这样的代表:函数(){... OnImageAdded}:未定义,/ /接受一个这样的代表:功能(imageData,$ LI){... OnImageRemoved}:未定义/ /接受一个这样的代表:功能(imageData,$ LI){... }});}); </ SCRIPT> {module_contentholder,8514} </ BODY> </ HTML> 

用户芳阮回答:

您必须在计算机上安装IE浏览器调试,检查HTML树督察。这可能使一些HTML是穷人,因为愚蠢行为IE6奇怪。如果没有一个帮助,然后启用在Visual Studio调试脚本调试尝试插入语句在代码中的某处,并开始翻身的代码段。


咀嚼说:

确保一切正确的JavaScript。我有一种感觉,jQuery是收费罚款,但JS停止工作后,他们到达某一点。

例如:在你的JS的第一行公布的电话Facebox不以分号结束。

 <script type="text/javascript"> jQuery(document).ready(function($) { $('a[rel*=facebox]').facebox({ loading_image : 'loading.gif', close_image : 'closelabel.gif' }) 

我检查,以确保有一个愚蠢的语法错误。


这段文字,已获得原始源Stackoverflow.com


必须阅读的C + +内存管理文章 - 2012-05-17 14:00

看完“ C + +内存管理:从恐惧到胜利 “系列,我想你应该阅读的内存管理的文章。我不知道还有什么要读不可错过的文章。

谢谢!


用户St3fan回答:

虽然不是一个真正的文章,我认为上升smart_ptr库文件对内存管理良好的信息C + +。当然,这是有失偏颇的钢筋库,但我认为它会从它那里得到一些很好的想法。


用户贾甘说:

中草药治疗萨特在他的著作“卓越C + +”和“C + +更出色。”关于内存管理


用户mloskot回答:

阅读和学习的良好RAII语言, 资源获取就是初始化的文章,以下两种:


用户BitShift回答:

一些基础知识:

内存作为C和C + +编程概念

弗朗齐歇克Franek

剑桥大学出版社

ISBN 0-521-52043-6


用户Poluektov亚历山大说:

安德烈Alexandrescu在他的话要说现代C + +设计书。有兴趣的可能

  • 第4章。小对象分配
  • 第7章。智能指针

虽然安德烈有争议的实用价值的技术,毫无疑问这本书学习一些新的和有趣的事情。


这段文字,已获得原始源Stackoverflow.com


Advertising

Facebook comments:

Advertising

Related Categories:

No related categories