草庐IT

指针认证

全部标签

c++ - STL 容器和内存管理——对象列表与对象指针列表

我已经仔细研究了关于这个主题的其他一些问题,但(据我所知)没有一个解决如何正确地从包含动态分配内存的STL对象列表与包含动态分配内存的STL对象列表中删除项目的问题不包含动态分配的内存。我想使用对象列表。以这个对象为例(它不包含动态分配的内存):classMyPoint{public:MyPoint(int_x,int_y){x=_x;y=_y;}private:intx;inty;};所以我可能会创建一个对象列表(不是指向它们的指针),向其中添加内容,然后删除一个元素:listmyList;myList.push_back(MyPoint(3,4));myList.push_back

c++ - 在没有 typedef 的情况下在 C++ 中返回函数指针时出错

我试图在不使用typedef的情况下返回指向函数的指针,但编译器(gcc)发出了一个奇怪的错误,就好像我无法进行那种设置一样。备注:使用typedef代码有效。代码:voidcatch_and_return(void(*pf)(char*,char*,int&),char*name_one,char*name_two,int&number)(char*,char*,int&){pf(name_one,name_two,number);returnpf;}错误:'catch_and_return'声明为返回函数的函数你能给我解释一下为什么编译器不允许我这样做吗?谢谢!

c++ - 有没有一种 C++ 方法可以使用 iostream 来格式化地址和指针?

我有类似的东西unsignedx=16;unsigned*p=&x;std::cout输出:0000000000000010000x7fffc35ba784ostream::operator 最佳答案 像这样使用internal:#include#includeintmain(){unsignedx=16;unsigned*p=&x;std::cout这给出:0000000000000010000x7fffd123c1a40x007fffd123c1a4 关于c++-有没有一种C++方法

c++ - 使用指针遍历多维数组

如果你可以像这样使用指针遍历数组:for(int*iter=arr;iter!=std::end(arr);++iter){//code}如何使用指针遍历多维数组(不使用auto)?编辑:我假设这是一个int[][],例如{{3,6,8},{2,9,3},{4,8,2}} 最佳答案 如果您将数组声明为arr[][],是的,您可以这样做,因为它们是按顺序存储在内存中的。你可以这样做:for(int*iter=&arr[0][0];iter!=&arr[0][0]+col*row;iter++)//...

c++ - 我是否正确理解了所有这些指针所指向的内容?

我创建了一个程序,它创建了三个C字符串,然后是一个指针数组,其大小与我创建的C字符串的数量相同(3),数组中的每个指针指向每个字符串的第一个字符三个字符串,最后是指向指针数组的指针(指向数组中的第一个指针)。代码如下:intmain(){chararr1[]="hello";chararr2[]="dear";chararr3[]="world";char*p1[3];*p1=arr1;*(p1+1)=arr2;*(p1+2)=arr3;char**ptr=p1;}但是,当我做类似std::cout的事情时我希望它只输出指针数组中第一个指针的地址。然而,它实际上打印出整个单词"hell

c++ - 使用 OpenCV 在图像上悬停时打印鼠标指针的像素坐标

#include#include#include#includeusingnamespacecv;usingnamespacestd;Matimage;charwindow_name[20]="Getcoordinates";staticvoidonMouse(intevent,intx,inty,intf,void*){cout这是打印鼠标指针坐标值的代码,同时悬停在图像上,在控制台上。如果我想在图像上打印类似的坐标,我应该怎么做? 最佳答案 #include#include#includeusingnamespacecv;Mat

YOLOv8+PyQt+OpenCV实现数字式仪表读数和指针式仪表读数识别(一)

数字式仪表和两种指针式仪表读数识别最近放假看到YOLOv8一直在更新,想着在家无聊把本科毕设重新做了下,之前用的是YOLOv5,下载了YOLOv8最新版把项目迁移了过来,相比于v5来说YOLOv8变化还是挺大的,功能更加集成了,话不多说,直接上结果图片和最后的检测视频。数字式仪表识别效果指针式仪表识别效果360度指针式仪表识别效果数字式仪表和指针式仪表检测视频YOLOv8+PyQt+OpenCV+Python实现数字式仪表和两种指针式仪表读数识别整体思路流程YOLOv8的检测结果更加集成了,可以在JupyterLab中根据检测结果一步步获取目标框的位置信息,不用像yolov5一样还得在源码里找

c++ - 有没有办法在指向类类型的指针中不使用 * 来调用类运算符?

当我有一个指向类的指针时,是否可以在不使用*的情况下调用operator[]?classMyClass{public:voidoperator[](intn){cout 最佳答案 是的,您应该能够使用->运算符,如下所示:a->operator[](2);Demoonideone.如果您只需要消除星号,这应该可以解决问题。如果您的目标是提高可读性,这并没有太大帮助-您需要避免使用指针,或者使用常规成员函数:classMyClass{public:voidoperator[](intn){cout现在你可以写a->at(2);(Dem

c++ - 关于指针的一些问题

我在读高中三年级,目前正在学习C++。由于我们已经完成了我们需要了解的关于一般编程的所有内容(循环、if语句、函数、结构、数组和二维数组),我们开始了二进制/文本文件,我认为在我们学习文件的同时学习内存管理。首先,我现在正在尝试学习指针,因为如果我理解正确的话,在OOP中它们是必须的。其次,我想知道计算机是如何工作的,正在发生的事情背后是什么。现在,我制作了这一小段代码intmain(){chary;char*x;x=&y;cout>x;cout它可以工作,但是当程序关闭时,我收到一条错误消息,指出变量“y”周围的堆栈已损坏。如果我没有混淆,堆栈是动态内存,堆是静态内存,想想我得到这个

c++ - 我正在尝试将 C++ 引用与指针相关联

在说这将是一个重复的问题和否决票(就像以前发生的那样)之前,我进行了搜索,但没有发现任何相似的东西。我和许多其他人一样,正在尝试学习C++引用变量的使用并将它们与指针相关联。我发现制作表格更容易,我需要知道它是否需要修改。int*nintnint&ncaller/localvoidfoo(int*n)n&n&ncallervoidfoo(intn)*nnnlocalvoidfoo(int&n)*nnncaller表格要反射(reflect)所有合法传递的参数。[1,1]:passingbyreference(trivial)[1,2]:passingbyreference[1,3(1)