- 博客(102)
- 收藏
- 关注
原创 VS2019中C++与Fortran的混合编程
这里写自定义目录标题目录基本配置Fortran的dll如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入目录本文说明在VS2019中使用C++调用Fortran的dll基本配置windows 10;VS2019+oneAPI;参考链接:1:https://bl
2021-09-06 21:52:27 5261 5
原创 剑指offer14《剪绳子》证明
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-03-27 23:02:43 202
原创 QT Creator 中一些要注意的地方
5.3 拖放操作1.运行程序,拖放的时候要拖放到主窗口上,而不是Text Edit部件上,否则只显示文件路径,而不是文件内容;2.拖放的时候,会显示中文乱码;修改一下读取文件的处理函数:void MainWindow::dropEvent(QDropEvent *event){ QTextCodec *codec=QTextCodec::codecForName("UTF-8"); //增加一行,设置读取格式 const QMimeData *mimeDa
2020-05-16 20:20:02 332
原创 QT中png图片无法显示的问题
最近在学霍亚飞的《Qt Creator快速入门》,在练习的时候,发现png图片老是不能运行;网上搜索了一下解决方法;总结如下:1.最基本的是看自己文件路劲是不是对的,有时候设置的是相对目录,没有搞清绝对目录,导致出错;2.删除掉原先的debug文件,重新编译运行,我出错,一般是在这个地方。3.最后查看imageformats文件夹,有没有需要的处理图片的的dll,我的目录是在:D:\QT\5.11.3\msvc2015\plugins\imageformats。在Stack Overfl
2020-05-15 14:21:38 4609
原创 指针和引用交换
void swap1(int *x, int *y){ int k =* x; *x = *y; *y = k;}void swap2(int *x, int *y){ int *k = x; x = y; y = k; }void swap3(int *&x, int *&y){ int *k = x; x = y; y = k;}in...
2020-05-02 00:09:43 475
原创 第十五章 习题15-1-习题15-10
习题15-1虚成员是基类希望派生类进行覆盖的函数,在其成员前加关键字virtual,使得该成员可以实现动态绑定。习题15-2private成员:即使是基类的派生类也无法直接访问。protected成员:基类的派生类可以访问,但禁止其它用户访问。习题15-3class Quote{public: Quote() = default; Quote(const std:...
2019-12-24 22:43:25 248
原创 第十四章 习题14-51-习题14-60
习题14-51会优先调用calc(int)转换的优先级如下:精确匹配 const 转换。 类型提升 算术转换 类类型转换习题14-52ld = si + ld;具有二义性,调用1需将si转换为LongDouble,ld转换为SmallInt。调用2需要将si转换为LongDouble,ld转换为double。ld = ld + si;精确匹配LongDouble ...
2019-12-22 22:23:06 385
原创 第十四章 习题14-41-习题14-50
习题14-41增加lambda使一些程序变得简单。当一个函数不会被频繁的调用,而且实现也不复杂时,使用lambda;若函数实现较复杂且要被频繁调用,使用类实现。习题14-42count_if(ivec.cbegin(), ivec.cend(), bind(:greater<int>(), _1, 1024));find_if(svec.cbegin(), sv...
2019-12-22 22:13:51 227
原创 第十四章 习题14-31-习题14-40
习题14-31因为在这个类中我们不需要申请或管理内存,因此使用合成版本就足够;习题14-32class StrBlobPtr_pointer{public: StrBlobPtr_pointer() = default; StrBlobPtr_pointer(StrBlobPtr* p) : pointer(p) { } StrBlobPtr& ...
2019-12-21 23:27:34 233
原创 第十四章 习题14-21-习题14-30
习题14-21Sales_data& Sales_data::operator+=(const Sales_data &rhs){ Sales_data temp = *this; *this = temp + rhs; return *this;}Sales_data& operator+ (const Sales_data&...
2019-12-21 18:14:15 201
原创 第十四章 习题14-11-习题14-20
习题14-11无错误;但是这种写法由于没有输入检查,所以对于上个练习不会发生什么;习题14-12略习题14-13复合赋值及减运算Sales_data& Sales_data::operator+= (const Sales_data& lhs){ units_sold += lhs.units_sold; revenue += lhss....
2019-12-19 23:03:52 323
原创 第十四章 习题14-1-习题14-10
习题14-1不同点:重载运算符要求至少有一个操作数是class或枚举类型;重载运算符不保证操作数求值顺序;相同点:优先级、结合性、操作数相同;习题14-2Sales_data& Sales_data::operator+=(const Sales_data &rhs){ units_sold += rhs.units_sold; revenue += rhs...
2019-12-19 21:58:41 400
原创 第十三章 习题13-51-习题13-60
习题13-51局部对象意味着要销毁了,这里执行的是移动而不是拷贝;习题13-52hp=hp2,hp2是一个变量,左值。传递给赋值运算符是用拷贝构造,rhs是hp2的副本。赋值完毕后,生成独立的变量,但内容相同;hp=std::move(hp2),移动构造。rhs.ps指向hp.ps原来的string,hp.ps设置为空指针。交换完毕后,rhs被销毁。hp指向hp2原来的stri...
2019-12-14 19:42:46 382
原创 第十三章 习题13-41-习题13-50
习题13-41前置运算返回的是先加一,再返回值;后置运算是先返回值,再加一。这里,由于是尾后指针,后置运算比较合理;如果用前置运算,就不会给first_free的初始尾后指针位置赋值,并且将最后的尾后指针cap赋值了;习题13-42替换一下即可;习题13-43for_each(elements,first_free,[](string &s){alloc.dest...
2019-12-14 16:36:31 221
原创 第十三章 习题13-31-习题13-40
习题13-31#include <iostream>#include<string>#include<vector>#include<algorithm>using namespace std;class HasPtr{ friend void swap(HasPtr&, HasPtr&);public: Ha...
2019-12-12 21:36:59 222
原创 第十三章 习题13-21-习题13-30
习题13-21不需要,因为都是用的智能指针,不需要析构函数,合成的拷贝控制成员已经满足要求,拷贝控制成员没有必要;习题13-22 HasPtr(const HasPtr &p) : ps(new string(*p.ps)), i(p.i) {} HasPtr& operator=(const HasPtr &p) { auto newp = new ...
2019-12-08 00:19:39 231
原创 第十三章 习题13-11-习题13-20
习题13-11动态对象要用delete销毁 ~HasPtr() { delete ps; }习题13-12“当指向一个对象的引用或指针离开作用域时,析构函数不会执行”三次;这里由于执行的是拷贝初始化,不是拷贝赋值,而拷贝初始化的时候是引用传递,所以不会有函数传递产生的临时对象。习题13-13#include<iostream>#includ...
2019-11-24 22:48:22 360
原创 第十三章 习题13-1-习题13-10
习题13-1“如果一个构造函数的第一个参数是自身类类型的引用,且任何额外参数都有默认值,则此构造函数是拷贝构造函数”,在拷贝初始化的时候会使用;习题13-2没有引用,当使用拷贝构造函数时,实参传递个形参,使用拷贝初始化,这样就又要调用拷贝构造函数,导致无线循环;习题13-3当我们拷贝 StrBlob时,会使shared_ptr的引用计数加1。当我们拷贝 StrBlobPtr...
2019-11-19 23:09:15 297
原创 第十二章 习题12-31-习题12-40
习题12-31如果用vector会有重复的行号,用set比较好,不会重复显示;习题12-32替换一下就行class TextQuery{public: TextQuery(ifstream &in); QueryResult query(const string &str) const;private: shared_ptr<strBlob>...
2019-11-17 17:51:43 250
原创 第十二章 习题12-21-习题12-30
习题12-21原来的版本好,可读性更高;习题12-22构造函数改为接受const Strblob &, 然后给 Strblob 类添加两个 const 成员函数 cbegin 和 cend,返回 ConstStrBlobPtr。习题12-23对C字符串的理解不够深刻,部分函数调用不太理解,照答案抄一下。。。#include <iostream>...
2019-11-17 17:07:41 267
原创 第十二章 习题12-11-习题12-20
习题12-11因为p.get()返回一个内置指针,实际上shared_ptr<int>(p.get())创建了一个新的shared_ptr<int>,引用计数为1;这里为什么不是直接在原来的p的引用计数直接增加为2,是因为按照书中P402来看,实际上是因为引用计数的增加是建立在两个shared_ptr之间,而本题实际上是内置指针与shared_ptr之间;习题12-...
2019-11-16 12:21:40 265
原创 第十二章 习题12-1-习题12-10
习题12-14个,b2被销毁了,b1还存在,但是他们指向的是同一个vector;习题12-2在函数()后加一个const即可习题12-3不需要,因为push_back和pop_back会改变元素;习题12-4因为 size_type 是一个无符号整型,当传递给 check 的参数小于 0 的时候,参数值会转换成一个正整数。习题12-5不好说。。。参考答案:构...
2019-11-16 10:18:21 552
原创 第十一章 习题11-31-习题11-40
习题11-31#include<iostream> #include<vector>#include<map> #include<string>using namespace std;void main(){ multimap<string, string> item = { {"author1","book1"}...
2019-11-12 23:08:02 355
原创 第十一章 习题11-21-习题11-30
习题11-21插入word到word_count中,若word不存在,则将其关联数值size_t设为0,然后递增;若word已经存在,递增其关联数值size_t;习题11-22参数类型:map<string,vector<int>>;返回类型:map<map<string,vector<int>>,bool>习题11-...
2019-11-01 23:24:54 215
原创 第十一章 习题11-11-习题11-20
习题11-11using compare= bool (*)(Sales_data const&, Sales_data const&);std::multiset<Sales_data, compare> bookstore(compareIsbn);习题11-12#include<iostream> #include<vec...
2019-11-01 22:28:50 194
原创 第十一章 习题11-1-习题11-10
习题11-1map是关联容器,可以存储两种类型不同的“键”-“值”对;vector是顺序容器,只能存放单一数据类型;关联容器中的元素是按关键字来保存和访问的;顺序容器中的元素是按他们在容器中的位置来顺序保存和访问的;习题11-2list -- 需要在中间进行操作的情况。 vector, 动态数组。 deque -- 只需要在头尾进行操作的情况 map -- 字典 set...
2019-10-30 20:50:41 524
原创 第十章 习题10-41-习题10-42
参考https://blog.csdn.net/misayaaaaa/article/details/58143138习题10-41算法的命名规范:_if 非重载,满足谓词条件的版本。_copy拷贝版本的算法(a):遍历beg到end,找到oldVal就用newVal替换(b):遍历beg到end,找到满足pred条件的就用newVal替换(c):遍历beg到end,找到old...
2019-10-23 23:07:15 272
原创 第十章 习题10-31-习题10-40
习题10-31#include <iostream>#include<algorithm>#include <vector>#include<iterator>using namespace std;int main(){ istream_iterator<int> int_in(cin), int_eof; os...
2019-10-23 22:35:55 154
原创 第十章 习题10-21-习题10-30
习题10-21#include<algorithm>#include<iostream>using namespace std;void main(){ int val = 5; auto f = [&val]()mutable->bool { if (0 == val) return false; else retu...
2019-10-22 22:58:40 241
原创 第十章 习题10-11-习题10-20
习题10-11#include<algorithm>#include<vector>#include<string>#include<iostream>using namespace std;bool isShorter(const string &s1, const string &s2){ return s1....
2019-10-20 20:45:17 281
原创 第十章 习题10-1-习题10-10
习题10-1#include<algorithm>#include<vector>#include<iostream>using namespace std;void main(){ int a[10] = { 1,2,3,4,5,5,3,2,3,4 }; vector<int> vec(a,a+10); cout <&l...
2019-10-20 11:53:51 322
原创 第九章 习题9-51-习题9-60(mark)
mark一下,书的两段看得有点迷迷糊糊的。习题9-51照抄吧,,,有点不是很明白想干什么参考https://github.com/huangmingchuan/Cpp_Primer_Answers/blob/master/ch09/exercise9_51.cpp#include <iostream>#include <string>#include ...
2019-10-13 08:17:43 573
原创 第九章 习题9-41-习题9-50
习题9-41void test941(){ vector<char> cvec = {'a', 'b', 'c', 'd', 'e'}; string str(cvec.begin(), cvec.end()); cout << str << endl;}习题9-42 string str; str.reserve(...
2019-10-11 22:52:27 168
原创 第九章 习题9-31-习题9-40
习题9-31此题的知识点在于:list和forward_list是链表,在内存中不是连续的,不支持算术运算P296中9.2.1;void test931_1(){ list<int> lst = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; auto iter = lst.begin(); while (iter != lst.end()) {...
2019-09-15 16:57:23 295
原创 第九章 习题9-21-习题9-30
习题9-21一样工作?!vector和list工作原理一致;习题9-221、两个迭代器没有“+”运算:mid=iv.begin()+(iv.end()-iv.begin())/2 or mid =iv.begin()+iv.size();2、iv.insert()有返回值;习题9-23会是c的首元素;习题9-24 vector<int> vec; ...
2019-09-15 09:49:11 223
原创 第九章 习题9-11-习题9-20
习题9-111) vector<int> v1; /空,潜在元素为int型,执行默认初始化;2) vector<int> v2{1,2,3}; /1,2,3;3) vector<int> v3(v2); /1,2,3;4) vector<int> v4=v2; /...
2019-09-14 23:45:52 248
原创 第九章 习题9-1-习题9-10
习题9-1(a)使用list,因为需要在任意位置插入数据;(b)使用deque,deque是很快;(c)vector,排序要不断调整位置,vector支持快速随机访问,不插入删除元素,只是改变顺序;习题9-2list<deque<int>>习题9-31、begin和end必须分别指向同一容器中的元素或者是尾元素之后的尾元素之后的位置;2、可...
2019-09-13 22:59:45 631
原创 第八章 习题8-11-习题8-20
习题8-11#include<iostream>#include<fstream>#include<sstream>#include<vector>#include<string>using namespace std;struct PersonInfo{ string name; vector<...
2019-09-10 23:34:11 213
原创 第八章 习题8-1-习题8-10
条件状态知识点:参考博客:https://www.cnblogs.com/yulianggo/p/9357175.htmliostate类型,是一种四个位集合类型:goodbit、badbit、eofbit、failbit,相应的函数good()、bad()、eof()、bad()返回bool类型的值,如果被置位,,则返回true,否则为false。在我的机器里,和博主的不一样,rds...
2019-09-10 23:03:02 335
原创 第七章 习题7-51-习题7-60
习题7-51constchar *与string参见博客https://blog.csdn.net/wcc27857285/article/details/84852269这道题根据答案的理解:如果vector没有explicit,对于以下函数:int getSize(const std::vector<int>&);调用:将34,还是3,4构造成一个...
2019-09-07 20:12:25 326
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人