
C/C++
highvision25
C/C ,Linux,data-communications,Java
展开
-
《剑指offer》第二版勘误,P42
P42,文字倒数第五行:“我们在统计数字3或者4在数组中出现的次数,它们一共出现了三次。”应该删除,因为这里并没有统计3或4的次数为三次,而是直接统计了3的次数,然后再统计了一次3的次数,得出3是重复的数字。#include <iostream>int countRange(const int* numbers, int length, int start, int end){ if (numbers == nullptr) { return 0; } int.原创 2022-04-05 19:41:04 · 530 阅读 · 0 评论 -
函数块(加锁->取出)->调用
ObjectList local;{ std::lock_guard<std::mutex> lock(mutex_); for (auto& obj : objects_) { local.emplace_back(obj); }}if (!local.empty()) { for (auto& obj : local) { (*obj)(args...); }}加锁时,快速取出数据。调用是,数据在本地,不.原创 2021-09-17 11:47:18 · 152 阅读 · 0 评论 -
undefined reference to `vtable for问题分析与解决方案
一、问题出现:1.调用类错误:xxx (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)2.被调用类错误:undefined reference to `vtable for yyy3.链接错误:collect2: error: ld returned 1 exit statusmake[2]: *** [aaa/bbb/原创 2021-03-23 10:27:52 · 3772 阅读 · 0 评论 -
mfc写状态栏
void CPhotoEditorView::OnMouseMove(UINT nFlags, CPoint point){ // TODO: 在此添加消息处理程序代码和/或调用默认值 m_mousePoint = point; CString str; str.Format(_T("%sx=%d,y=%d."), m_strStatusBarInfo, point.x, point.y); //方法1:((CMainFrame*)GetParent())->m_wndStatusBar.原创 2020-09-25 17:16:26 · 159 阅读 · 0 评论 -
从字符串中取出RGB
int CWorkSpace::GetColorRGB(std::string strColorText, COLORREF& color){ char chR[4] = {0}, chG[4] = {0}, chB[4] = {0}; sscanf(strColorText.c_str(), "%[^,],%[^,],%[^,]", chR, chG, chB); color = RGB(atoi(chR), atoi(chG), atoi(chB)); return 0;}..原创 2020-09-25 16:53:13 · 355 阅读 · 0 评论 -
MFC新建位图
if (NULL == m_pTraceMemDC) { m_pTraceMemDC = new CDC; if (NULL == m_pTraceMemDC) { return; } m_pTraceMemDC->CreateCompatibleDC(NULL); } //这时还不能绘图,因为没有地方画 //下面建立一个与屏幕显示兼容的位图,至于位图的大小嘛,可以用窗口的大小 if (NULL == m_pTraceMemBmp) { m_pT...原创 2020-09-25 16:46:37 · 1634 阅读 · 0 评论 -
C++使用sqlite
C++使用SQLite开发环境:Windows 7+VS2017。开发语言:C++。1、 下载sqlite文件。下载网址:http://www.sqlite.org/download.html。SQLite版本为SQLite 3.33.0,相关文件如下。sqlite-dll-win32-x86-3330000.zip:包含sqlite3.def、sqlite3.dll文件。sqlite-amalgamation-3330000.zip:包含sqlite3.h 文件。sqlite-t原创 2020-09-04 13:36:36 · 353 阅读 · 0 评论 -
引用作为返回值/多态
1、引用作为返回值,必须遵守以下规则: (1)不能返回局部变量的引用。这条可以参照Effective C++[1]的Item 31。主要原因是局部变量会在函数返回后被销毁,因此被返回的引用就成为了 "无所指 "的引用,程序会进入未知状态。 (2)不能返回函数内部new分配的内存的引用。这条可以参照Effective C++[1]的Item 31。虽然不存在局部变量的被动销毁问题,可对于这种情况(返原创 2008-11-19 12:54:00 · 691 阅读 · 0 评论 -
踏入C++中的雷区---C++内存管理详解
1、内存分配方式 内存分配方式有三种: (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 (2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 (3) 从堆上分配,亦称动态内存分配原创 2008-10-24 14:01:00 · 328 阅读 · 0 评论