CPP & SIMD
记录有关C++和SIMD指令的知识
leelitian3
这个作者很懒,什么都没留下…
展开
-
arm64 ld1指令详解
arm64 ld1指令详解原创 2021-12-02 10:12:35 · 2362 阅读 · 2 评论 -
arm64 ext指令图解
指令图解:举例说明:ext v17.16b, v20.16b, v21.16b, #4原创 2021-12-02 10:28:09 · 1232 阅读 · 0 评论 -
arm64 umull、umull2、umlal、umlsl指令
指令描述:无符号数的向量乘法,以下是具体区别。指令语法:指令详解:umull v4.4s, v17.4h, v1.4h (1)v1寄存器的4个值(长度为H),与v17寄存器的4个值,对应元素相乘,所得结果保存在v4寄存器中(长度为S)。umull2 v5.4s, v17.8h, v1.8h (2)与umull指令类似,不同的是,它取的是寄存器高64位的值进行计算。比如这个指令...原创 2021-12-02 10:42:35 · 1199 阅读 · 0 评论 -
C++二维数组sort排序问题
以往遇到行排列问题(按每行的字典序排序)的时候,总是使用结构体来进行排序,但是如何使用二维数组来达到同样的效果呢?实验内容:利用二维数组进行“三级排序”测试1:使用c++内置的普通型二维数组#include <algorithm>#include <iostream>using namespace std;bool cmp(int a[], int b[]){ ...原创 2018-02-08 20:08:16 · 72957 阅读 · 8 评论 -
C++11 毫秒时间
计时有很多用途,比如:测试某一段代码的运行时间,时间越短,则性能相对越高。计时有很多方法,我将首先给出我以前常用的一种计时方法,然后给出我认为的最佳方法(采用了C++11的标准技术)。首先给出我以前常用的一种“传统”的计时方法:#include <ctime>using namespace std; clock_t start = clock();// do some...原创 2018-07-26 21:25:56 · 7334 阅读 · 0 评论 -
C++手动开启编译优化
手动开启O2、O3优化,实测有效!#pragma GCC optimize(2)#pragma GCC optimize(3,"Ofast","inline")关闭同步,加快IO效率int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); /* your co...原创 2020-03-14 15:34:26 · 1191 阅读 · 0 评论 -
C++ 自定义比较:仿函数、函数与重载操作符
cpp 模板泛型编程cpp 比 c 方便不少不光因为其支持面向对象支持class,同样还因为其支持泛型编程,有方便的STL库。泛型要比宏强大的多,是一种设计更巧妙的编译期动态机制,类型安全,使得一些通用算法的封装变得十分方便。模板操作的是类型,特化的时候编译器会做类型推导,这是模板一个核心特征。 根据C++标准,当一个模板不被用到时它就不应该被具体化。对于cpp 编译器是如何特化,编译成最终代...转载 2020-04-20 12:37:39 · 1382 阅读 · 1 评论 -
C++ string常用函数
一、string截取、替换、查找子串函数1. 截取子串s.substr(pos, n) 截取s中从pos开始(包括0)的n个字符的子串,并返回s.substr(pos) 截取s中从从pos开始(包括0)到末尾的所有字符的子串,并返回2. 替换子串s.replace(pos, n, s1) 用s1替换s中从pos开始(包括0)的n个字符的子串3. 查找子串s.find(s1...原创 2018-06-28 17:08:44 · 2595 阅读 · 0 评论