我有一个Armadillo矩阵,由import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';
@Pipe({ name: 'safe' })
// see https://medium.com/@swarnakishore/angular-safe-pipe-implementation-to-bypass-domsanitizer-stripping-out-content-c1bf0f1cc36b
// usage: <div [innerHtml]="htmlSnippet | safe: 'html'"></div>
export class SafePipe implements PipeTransform {
constructor(protected sanitizer: DomSanitizer) {}
public transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {
switch (type) {
case 'html':
return this.sanitizer.bypassSecurityTrustHtml(value);
case 'style':
return this.sanitizer.bypassSecurityTrustStyle(value);
case 'script':
return this.sanitizer.bypassSecurityTrustScript(value);
case 'url':
return this.sanitizer.bypassSecurityTrustUrl(value);
case 'resourceUrl':
return this.sanitizer.bypassSecurityTrustResourceUrl(value);
default:
throw new Error(`Invalid safe type specified: ${type}`);
}
}
}
引用。我想将此矩阵附加到矩阵向量,而不复制基础数据。
到目前为止,我有以下内容:
unique_ptr
我认为这会做到以下几点:
std::unique_ptr<arma::mat> m = ...; // Assume this is populated somewhere
std::vector<arma::mat> vec;
vec.push_back(std::move(*m));
对象(arma::mat
)*m
)这是正确的,还是我错过了什么?
感谢您的帮助!
答案 0 :(得分:1)
这是正确的,还是我错过了什么?
是的,这是正确的。
有几个缺点。
Parse.Cloud.beforeSave('MyClass', (request, response) => {
let object = request.object;
for( var key in object.dirtyKeys() ) {
if( !schema.fields.hasOwnProperty(key) ) < Unset or return error >
}
response.success();
}
指死亡的物体。访问它可能很危险。m
的对象足够重。查看用于小向量和矩阵的封装本地存储。它禁用了小矩阵和向量的移动语义。arma::mat
的大小调整因其元素操作而变重。我更喜欢像bellow
这样的代码std::vector<arma::mat>
答案 1 :(得分:0)
你拥有的是正确的。但仍有改进的余地。具体地,
if (textBox.lastChild != "<br></br>") {
$(textBox).append("<br />");
}
这会立即释放指针。这意味着移动的对象未初始化(析构函数被调用),存储在现场解除分配。这可能会带来一些性能上的好处(所讨论的here适用的论点相同)。