草庐IT

STD_LOGIC_VECTOR

全部标签

c++ - vector 乘法中的 SIMD 与 OMP

在我的项目中,我必须做几个vector乘法,在double*a-vectors或float*a-vectors上完成。为了加快速度,我想使用SIMD操作或omp。为了获得最快的结果,我写了一个基准程序:#include#include#include#include#include#include#include#defineSIZE32768#defineROUNDS1e5voidmultiply_singular(float*a,float*b,float*d){for(inti=0;i(t2-t1).count();std::cout(t2-t1).count();std::co

c++ - 如何在 OpenMP 4 中为 std::vector 写入 "target data map"?

我想使用C++和vectors。我有C代码和这样创建的C数组:double*data=(double*)malloc(sizeof(double)*n);double*result=(double*)malloc(sizeof(double)*n);#pragmaomptargetdatamap(tofrom:data[0:n],result[0:n])//loop现在我使用C++vector,我得到:example.cpp:31:41:error:expectedvariablenameoranarrayitem#pragmaomptargetdatamap(tofrom:data[

c++ - reinterpret_cast 指向基类的指针的 vector 的 vector

考虑以下代码#include#include#include#includestructBase{intx;Base(intx):x(x){}};structDerived:publicBase{inty,z;Derived(intx):Base(x),y(x+1),z(x+2){}};voidupdate(conststd::vector>&elements){for(constautoelem:elements){std::coutx>elements(4);{intctr=0;std::generate(begin(elements),end(elements),[&ctr]()

c++ - 从 std::map 中删除 std::function lambda-wrapped 方法

我正在使用std::function和std::map创建一个回调系统。该映射使用int作为键,值为std::function。我将方法绑定(bind)到这些函数中。我想知道如果我调用map.erase(i),会从内存中删除std::function,还是会发生内存泄漏?下面是一些示例代码:#include#include#includeusingnamespacestd;classTestClass{public:TestClass(int_i,map>&test_map):i(_i){test_map[i]=[&](){this->lambda_test();};};voidlam

c++ - 为什么创建 `std::regex` 违反概念?

#define_GLIBCXX_CONCEPT_CHECKS#includevoidf(){std::regexr("hello");}当上面iscompiled作为GCC或Clang中的C++11,会生成一个巨大的模板错误,其关键部分似乎是:/opt/gcc-5.3.0/include/c++/5.3.0/bits/boost_concept_check.h:206:11:error:useofdeletedfunction'std::__detail::_StateSeq>&std::__detail::_StateSeq>::operator=(conststd::__detai

c++ - 如何正确增加 C++11 std::atomic?

我是多线程编程的新手,我发现了C++11中的std::atomic。所以,我试图弄清楚原子操作需要多少时间。我试过这段代码:usingnamespacestd;usingnamespacestd::chrono;constexprintNUM_THREADS=8;constexprintLIMIT=100000;atomicsum=0;voidfoo(intidx){while(true){if(sum.load()>=LIMIT){return;}sum.fetch_add(1);}}与主要:intmain(void){threadthreads[NUM_THREADS];autos

C++ vector 复制赋值,调用其元素的哪种复制机制?

我的类A显式实现了它的复制构造函数和复制赋值。复制分配此类元素的vector时使用哪种复制机制?这是:vectora1,a2(5);a1=a2;要对a1的所有新元素使用A的复制构造函数,并将a2的元素作为输入?还是要在a1中为元素腾出空间,然后将A的operator=与的元素一起使用>a2作为输入?如果a1在赋值前不为空怎么办?它甚至被指定了吗?我的类的复制构造函数和operator=不完全做同样的事情(这是不好的做法吗?目前主要是测试内容)。看起来复制构造函数被调用了,但我想知道它是否保证是那样的,或者在这种情况下是否恰好是这样。 最佳答案

c++ - 为什么 std::future<T> 和 std::shared_future<T> 不提供成员 swap()?

C++标准库中的各种类都有成员交换函数,包括一些多态类,如std::basic_ios。.模板类std::shared_future显然是一个值类型并且std::future是一个只能移动的值类型。有什么特别的原因,他们不提供swap()成员函数? 最佳答案 在std::move之前,成员交换是一个巨大的性能提升C++11中的支持。例如,您可以通过这种方式将一个vector移动到另一个位置。它用于vector也会调整大小,这意味着插入vector的vector并不是完全的性能自杀。在std::move之后到达C++11,许多有时为空

c++ - std::atomic 用于内置类型 - 非无锁与琐碎的析构函数?

查看std::atomic这是我阅读的默认专业:Thesespecializationshavestandardlayout,trivialdefaultconstructors,andtrivialdestructors.我还阅读了is_lock_free:Allatomictypesexceptforstd::atomic_flagmaybeimplementedusingmutexesorotherlockingoperations,ratherthanusingthelock-freeatomicCPUinstructions.Atomictypesarealsoallowed

c++ - std::result_of 应用于 const 重载方法

如果我给typedefstd::vectorv;然后下面可以用来捕获常量迭代器的类型(另一种方法是使用v::const_iterator,但这取决于const_iterator成员类型在类中明确定义。typedeftypenamestd::result_of::typeconst_iterator;确实,我们可以检查上面的内容是否如我们所愿。static_assert(std::is_same::value);但是,我发现下面的编译器失败。typedeftypenamestd::result_of::typeiterator;编译器提示该方法被重载(通过const修饰符)并且无法明确解