草庐IT

new_order

全部标签

c++ - Malloc vs new——不同的填充

我正在为我们的项目审查其他人的C++代码,该项目使用MPI进行高性能计算(10^5-10^6核)。该代码旨在允许(可能)不同架构上的不同机器之间进行通信。他写了一条评论,内容大致如下:We'dnormallyusenewanddelete,buthereI'musingmallocandfree.Thisisnecessarybecausesomecompilerswillpadthedatadifferentlywhennewisused,leadingtoerrorsintransferringdatabetweendifferentplatforms.Thisdoesn'thap

c++ - 'new operator' 和 'operator new' 之间的区别?

“newoperator”和“operatornew”有什么区别? 最佳答案 我通常会尝试用不同的措辞来更好地区分两者,但无论如何这是一个好问题。Operatornew是一个分配原始内存的函数——至少在概念上,它与malloc()没有太大区别。尽管除非您编写自己的容器之类的东西,否则这是相当不寻常的,但您可以直接调用operatornew,例如:char*x=static_cast(operatornew(100));也可以全局或为特定类重载operatornew。IIRC,签名是:void*operatornew(size_t);

c++ - 有没有一种方法可以在不使用 new 的情况下从函数返回抽象(出于性能原因)

例如,我有一些函数pet_maker()创建并返回Cat或Dog作为基础Pet。我想多次调用这个函数,并对返回的Pet做一些事情。传统上我会在pet_maker()中newCat或Dog并返回一个指向它的指针,但是new调用比在堆栈上执行所有操作要慢得多。是否有任何人都可以想到的一种简洁的方式来返回抽象,而不必在每次调用函数时都进行新的操作,或者是否有其他方式可以快速创建和返回抽象? 最佳答案 如果你想要多态性,使用new几乎是不可避免的。但是new工作缓慢的原因是因为它每次都在寻找空闲内存。您可以做的是编写自己的操作符new,理论

c++ - 有没有一种方法可以在不使用 new 的情况下从函数返回抽象(出于性能原因)

例如,我有一些函数pet_maker()创建并返回Cat或Dog作为基础Pet。我想多次调用这个函数,并对返回的Pet做一些事情。传统上我会在pet_maker()中newCat或Dog并返回一个指向它的指针,但是new调用比在堆栈上执行所有操作要慢得多。是否有任何人都可以想到的一种简洁的方式来返回抽象,而不必在每次调用函数时都进行新的操作,或者是否有其他方式可以快速创建和返回抽象? 最佳答案 如果你想要多态性,使用new几乎是不可避免的。但是new工作缓慢的原因是因为它每次都在寻找空闲内存。您可以做的是编写自己的操作符new,理论

objective-c - Objective-C 中的 alloc、init 和 new

这个问题在这里已经有了答案:Useofallocinitinsteadofnew(8个回答)关闭9年前。一本关于iPhone编程的书实例化了这样的类:[[Classalloc]init]另一本关于Objective-C的书是这样写的:[Classnew]有什么区别? 最佳答案 +new在字面上实现为:+(id)new{return[[selfalloc]init];}不多也不少。类可能会覆盖它,但这是非常不典型的,有利于执行+fooWithBar:之类的操作。 关于objective-c

c++ - 在多线程 C/C++ 中,malloc/new 在分配内存时是否锁定堆

我很好奇如果两个线程同时请求分配内存是否存在内存分配锁。我正在使用OpenMP执行多线程、C++代码。操作系统:主要是linux,但也想了解Windows和Mac。 最佳答案 在某些实现中可能会有改进,例如创建特定于线程的缓存(在这种情况下,小块的分配将是无锁的)。例如,this来自谷歌。但总的来说,是的,内存分配是有锁的。 关于c++-在多线程C/C++中,malloc/new在分配内存时是否锁定堆,我们在StackOverflow上找到一个类似的问题: h

c++ - 在多线程 C/C++ 中,malloc/new 在分配内存时是否锁定堆

我很好奇如果两个线程同时请求分配内存是否存在内存分配锁。我正在使用OpenMP执行多线程、C++代码。操作系统:主要是linux,但也想了解Windows和Mac。 最佳答案 在某些实现中可能会有改进,例如创建特定于线程的缓存(在这种情况下,小块的分配将是无锁的)。例如,this来自谷歌。但总的来说,是的,内存分配是有锁的。 关于c++-在多线程C/C++中,malloc/new在分配内存时是否锁定堆,我们在StackOverflow上找到一个类似的问题: h

Python 字典 : are keys() and values() always the same order?

看起来字典的keys()和values()方法返回的列表总是一对一的映射(假设字典不是在调用2个方法之间进行了更改)。例如:>>>d={'one':1,'two':2,'three':3}>>>k,v=d.keys(),d.values()>>>foriinrange(len(k)):printd[k[i]]==v[i]TrueTrueTrue如果你在调用keys()和调用values()之间不改变字典,假设上面的for循环总是打印True是错误的吗?我找不到任何文件证实这一点。 最佳答案 找到这个:Ifitems(),keys()

php - new self(); 是什么意思?在 PHP 中是什么意思?

我从未见过这样的代码:publicstaticfunctiongetInstance(){if(!isset(self::$_instance)){self::$_instance=newself();}returnself::$_instance;}和newclassName()一样吗?编辑如果类是继承的,它指向哪个类? 最佳答案 self指向编写它的类。所以,如果你的getInstance方法是在一个类名MyClass中,下面这行:self::$_instance=newself();会做同样的事情:self::$_instan

php - Laravel 4 : how to "order by" using Eloquent ORM

这个问题在这里已经有了答案:LaravelEloquent:Orderingresultsofall()(12个回答)关闭7年前。简单的问题-我如何在Laravel4中按'id'降序排序。我的Controller的相关部分如下所示:$posts=$this->post->all()据我了解,您使用此行:->orderBy('id','DESC');但这与我上面的代码有什么关系呢? 最佳答案 如果你使用post作为模型(没有依赖注入(inject)),你也可以这样做:$posts=Post::orderBy('id','DESC')-