
c++
rayyy9
这个作者很懒,什么都没留下…
展开
-
多维数组展平为一维数组,当已知一维数组的index,想要得到多维数组各个维度的坐标
假设有一个多维数组,其维度是d0, d1, d2,... dn-1。那么每个元素的坐标是(x0, x1, ..., xn-1)。将其展平为一维的索引时,计算公式是:index = x0*(d1。...,对应CalcStep函数的结果。那么反过来,当已知一维的index,想要得到各个维度的坐标,就需要用每个步长去除,得到对应的xi的值,然后取余数继续处理下一个维度。这里的步长数组就是每个括号里的乘积,例如对于x0的步长是d1。FROM DEEPSEEK 深度思考。原创 2025-04-02 06:48:44 · 95 阅读 · 0 评论 -
c++ libtorch tensor和Eigen Matrix互相转换
【代码】c++ libtorch tensor与Eigen Matrix互相转换。原创 2024-08-19 14:24:27 · 247 阅读 · 0 评论 -
MPI_Bcast 广播向量
【代码】MPI_Bcast 广播向量。原创 2024-08-17 20:56:04 · 151 阅读 · 0 评论 -
C++使用boost::filesystem实现遍历文件夹内文件输出所有文件的绝对路径
如果想迭代获取指定文件夹下所有文件(包含子文件夹内的文件)则使用。这篇是输出所以文件的文件名,包含后缀。原创 2024-08-17 19:38:46 · 389 阅读 · 0 评论 -
c++的chrono库计时
【代码】c++的chrono库计时。原创 2024-01-02 17:02:12 · 440 阅读 · 0 评论 -
c++ 编译DLL和使用DLL
在使用时,头文件#include test.h,同时在VS里工程——属性——配置属性——VC++目录,包含目录里包含test.h的所在目录,建议test.h放到使用的工程目录下,库目录包含Lib文件的所在目录,同样建议lib文件放在使用的工程目录下,最后在链接器——输入——附加依赖项中添加Lib文件,另外,将DLL文件放到工程编译生成的EXE文件的同一级目录。这样就可以使用DLL文件了。编译后生成DLL文件和LIB文件,他们的含义是动态链接库和静态链接库,里面包含了已定义的类。在头文件test.h里。原创 2023-04-07 10:46:31 · 994 阅读 · 0 评论 -
EIGEN 学习笔记
//创建行向量Eigen::RowVector2i xx(2);xx << 1, 2;std::cout << xx << std::endl;//创建常数向量Eigen::Matrix4d xxx(Eigen::Matrix4d::Constant(3));std::cout << xxx << std::endl;//创建全是1的矩阵Eigen::Matrix4d x4(Eigen::Matrix4d::Ones());.原创 2021-04-01 11:16:54 · 622 阅读 · 0 评论 -
C++ 向量vector删除某个元素(remove, erase)
std::vector<int> orders_shizijia{1,2,3,9};int vvv_topleft = 9;auto iter = std::remove(orders_shizijia.begin(), orders_shizijia.end(), vvv_topleft);orders_shizijia.erase(iter, orders_shizijia.end());原创 2021-03-18 11:11:48 · 2867 阅读 · 0 评论 -
C++ MAP的遍历顺序和插入元素顺序是不同的
当你为MAP插入一个元素后,MAP会按KEY的顺序重新排列,所以当你遍历MAP的时候,遍历的顺序已经不是你插入元素的顺序。举个具体例子:MAP【‘B’】=1MAP【‘C’】=2MAP【’A‘】=3当你遍历MAP输出的时候,是按'A','B','C'顺序输出的,而不是'B','C','A'顺序输出。如果你要遍历的顺序就是插入元素的顺序,你必须用线性容器,比如VECTOR。...原创 2020-11-03 09:41:41 · 7451 阅读 · 1 评论 -
C++ 派生类的智能指针可以放进基类的智能指针的向量(记录)
假设Derive1类,Derive2类是Base类的派生类,Derive1Ptr是Derive1类的智能指针,Derive2Ptr是Derive2类的智能指针,BasePtr是Base类的智能指针。有BasePtr的向量V,Derive1Ptr和Derive2Ptr是可以放进向量V里的。原创 2020-10-28 19:47:11 · 770 阅读 · 0 评论 -
C++ 整型除以整型还是整型
int a = 1;double b = a / 255;std::cout<<b<<std::endl;原创 2020-10-23 15:36:04 · 1831 阅读 · 0 评论 -
C++ VS2015 打开OPEN MP并行
首先在项目里的C/C++ -> 语言里的OPEN MP 支持打开,选择YES。然后include <omp.h>, 然后用open mp 指令,#pragma omp parallelfor开启open mp 并行。原创 2020-09-13 21:04:30 · 778 阅读 · 0 评论 -
c++ vector初始化的坑
vector初始化的时候开辟空间,然后emplace back的话,会扩大vector的大小,并且初始空间里的元素没有赋值。为了更形象地阐述我在说什么,附上代码如下:std::vector<double> v(4);v.emplace_back(1);v.emplace_back(2);v.emplace_back(3);v.emplace_back(4);我以为现在v里面的元素是1,2,3,4,大小为4,但是结果是0,0,0,0,1,2,3,4,大小为8...原创 2020-09-12 17:00:03 · 418 阅读 · 0 评论 -
qtdesigner action设置槽函数
提醒:只有主窗口才有action。在qtdesigner的下面,信号与槽编辑器的左边,action编辑器,右击目标action选中“转到槽”,就可以转到槽函数,然后你就可以开发对应的槽函数了。原创 2020-09-11 11:25:16 · 2924 阅读 · 0 评论 -
qtdesigner label 设置文本居中
选中目标label,属性编辑器,alignment, 水平居中的话调整为AlignHCenter, 垂直居中的话调整为AlignVCenter。原创 2020-09-11 11:22:43 · 8864 阅读 · 0 评论 -
mkl的静态库还有动态库的构成
静态库的构成的官网链接:https://software.intel.com/content/www/us/en/develop/documentation/mkl-windows-developer-guide/top/appendix-c-directory-structure-in-detail/detailed-structure-of-the-intel-64-architecture-directories/static-libraries-in-the-lib-intel64-win...原创 2020-09-10 22:54:22 · 763 阅读 · 1 评论 -
C++ definition of dllimport static data member
参考链接:https://stackoverflow.com/questions/3491990/c-definition-of-dllimport-static-data-memberqt编译时报错: definition of dllimport static data member not allowed原因是#ifdef P_API_#define P_API___declspec(dllexport)#else#define P_API___declspec(dllimpor.原创 2020-09-10 10:56:21 · 1661 阅读 · 0 评论 -
C++ error C3017: termination test in OpenMP ‘for‘ statement has improper form
用openmp给for循环开并行的时候遇到标题的编译报错。原因在于你的for循环的判断标准可能不是<,<=,>,>=,可以参考链接:https://stackoverflow.com/questions/22770856/error-c3017-termination-test-in-openmp-for-statement-has-improper-form本人是写了for(int i = 8; i != 0 ; --i){...},红色为错误原因,改为i>0就可以了!原创 2020-08-27 15:27:12 · 474 阅读 · 0 评论 -
C++ 递归实现不定层数的动态循环,应用例子:二维向量,全排列不定个数的向量里的数
不定层数的循环参考了链接:https://blog.youkuaiyun.com/yoshubom/article/details/104124333,里面包含讲解。应用场景:有一个里面是y个向量的向量,这里面的每个向量的元素的个数是不一样的。所以是两个维度,可以说是二维向量,一个维度是x,一个维度是y。y是循环的层数,x是每一个层循环的遍数。递归是在y维度上递归。解决问题:全排列二维向量里的数。下面的代码里,x_idx代表x维度的索引值,cur_y_idx代表当前y维度的索引值,max_y_idx代表y维原创 2020-08-26 11:45:02 · 774 阅读 · 0 评论 -
C++ 读写二进制文件(记录)
网上有很多记录,且查C++ REFERENCE也可以查到,链接:http://www.cplusplus.com/reference/ostream/ostream/write/#include<fstream>#include <iostream>#include<vector>void main(){ std::ofstream out("22.bin", std::ofstream::binary); std::vector&...原创 2020-08-24 23:32:33 · 360 阅读 · 0 评论 -
C++ 直接初始化向量
std::vector<float> a = { 1,2,3,4 };原创 2020-08-24 15:24:31 · 828 阅读 · 0 评论 -
C++ 设置输出小数点后的位数和设置有效位数的实现和区别
#include <iomanip>std::cout <<setprecision(6) << a <<std::endl; // 这是设置a的精度,有效位数std::cout << fixed << setprecision(6) << a <<std::endl; // 这是设置a的小数点后的位数当a等于0.000152646412358222时,第一条将输出0.00015...原创 2020-08-18 15:50:16 · 1014 阅读 · 0 评论