草庐IT

string-id

全部标签

【C++】深度剖析string类的底层结构及其模拟实现

文章目录前言1.string的结构2.构造、析构2.1无参构造2.2带参构造2.3问题发现及修改c_stroperator[]析构2.4合二为一——全缺省3.拷贝构造3.1浅拷贝的默认拷贝构造3.2深拷贝拷贝构造的实现4.赋值重载4.1浅拷贝的默认赋值重载4.2深拷贝赋值重载的实现5.string对象的遍历5.1【】(const版本和非const版本)5.2迭代器模拟实现(普通)5.3const迭代器模拟实现6.常见关系运算符重载7.数据插入删除及扩容操作7.1reserve7.2push_back和append7.3+=7.4resize7.5insert7.6erase8.swap和fin

c++ - 来自 D3D 显示适配器 ID 的描述性监视器名称

正如问题所暗示的,我试图提取一个描述性的监视器名称以匹配显示适配器名称。下面的代码给了我一个像\.\DISPLAY1这样的设备ID,这是可以理解的,但不是我要找的。//Getname.D3DADAPTER_IDENTIFIER9d3dID;d3d9.Get().GetAdapterIdentifier(iAdapter,0,&d3dID);dispAd.name=d3dID.Description;//AddmonitorIDtodisplayadaptername.FIX_ME//Nothappywiththisyet!HMONITORhMonitor=d3d9.Get().GetA

windows - 批处理 : Search for string to skip lines above and write results to new file

我已经成功地编写了一个脚本,它接受一个字符串来在特定文件中搜索,然后输出它第一次出现的行,然后我将该值放入for循环并跳过解析该行数并将其内容写入新文件。但是,我没有得到空行,我发现这些空行很难解决。我要搜索的字符串是“/]”,在它出现的地方缓存行号,然后用逗号分隔将它累积到一个变量中。然后我将该变量再次放入for循环中,并检索第一个出现的值作为我的最终“跳过此行数”变量,然后我在底部使用for循环再次读取该文件并将其值写入一个新文件并跳过文件开头的行数。下面是执行我上面描述的脚本的部分:setlocalenabledelayedexpansionsetlocalenableexten

Java - String.contains() 行为异常

这段代码在我的开发机器上运行良好(使用NetbeansIDE在VirtualBoxjre8上安装的Windows7),但在另一台机器上(Windows7jre8)总是返回true。它应该只查找名称为“town_house.html”的文件,而不是它总是为文件夹中的每个文件返回true。从提示符运行jar文件我没有得到任何异常。也许这只是我通常用C/C++编程的一个小错误……有什么想法吗?for(Filef:files){if(f.toString().contains("_")&&f.toString().contains(".html")){System.out.print("Pro

windows - 为什么在Win7 64bit下 'ntQuerySystemInformation'无法获取大于65535的进程id?

我使用“ntQuerySystemInformation”获取所有句柄信息,例如:NtQuerySystemInformation(SystemHandleInformation,pHandleInfor,ulSize,NULL);//SystemHandleInformation=16pHandleInfor的结构是:typedefstruct_SYSTEM_HANDLE_INFORMATION{ULONGProcessId;UCHARObjectTypeNumber;UCHARFlags;USHORTHandle;PVOIDObject;ACCESS_MASKGrantedAcce

windows - 如何生成字符串类型ID的资源条目?

我有一个包含以下条目的.rc文件:01111my_res{"string1"}01113my_res{"string2"}01119my_res{"string3"}当我用rc.exe编译这个.rc文件时,资源条目ID变为1111,1113和1119分别。显然,资源编译器将ID视为数字。我的第一印象是.res文件不能将数字存储为字符串类型。但是当使用资源编辑器(例如:XNResourceEditor.exe将资源ID1111更改为01111并存储为01111时,这表明资源ID可能存储为字符串类型。有没有办法将数字资源id编译为字符串类型? 最佳答案

windows - cmd 相当于 std::string::find_first:of

C++、Java、JavaScript和其他可能的编程语言都有一个字符串函数,可以在字符串中搜索指定字符串模式中的任何字符。例如,C++的std::string::find_first_of像这样工作:std::coutCMD中是否有任何等效项?我尝试搜索“dos字符串函数”,但似乎找不到任何内容。 最佳答案 没有直接的方法,但您可以很容易地编写自己的方法。搜索一个字符@echooffcall:charposition"Searchmeforvowels"aposechoFoundaatposition%pos%goto:eof:c

c++ - 当程序可见或最小化时进程 ID 发生变化

这个问题在这里已经有了答案:NameofprocessforactivewindowinWindows8/10(4个答案)关闭5年前。我正在尝试获取程序的进程ID(PID),但由于某些奇怪的原因,PID发生了变化。当目标程序(Alarms&Clock)可见时,它给了我错误的PID,而将程序最小化给了我正确的PID。我猜测最小化目标程序暂停它的进程,从而允许读取它。但是,即使进程正在运行,简单地读取PID也不应成为限制。有人知道我做错了什么吗?目前尝试过的方法:以管理模式运行为64位编译为32位编译这是描述问题的一段有效的、简洁的代码:#include#include#includein

C++ 从线程 ID 列表中查找 GUI 线程

我正在用C++构建一个应用程序,它使用WindowsHook来控制第三方程序。我正在制作的程序是一个教程程序,用于展示如何使用这些第三方程序。我可以找到我想要挂接的第三方程序的进程ID,然后我可以查询这个进程ID以找到一个线程ID列表,用作WindowsAPI函数SetWindowsHookEx的参数。但是,我担心从正在运行的进程的线程ID列表中,我会挂接到一个可能随时结束的线程。理想情况下,我想连接到运行主gui的线程,这很可能是最长生命的线程之一(即使它不是最长生命的线程,教程程序也被设计为与GUI一起工作所以它仍然是理想的)。如果第三方应用程序有多个图形用户界面,那么我想找到主图

c++ - TerminateProcess 不适用于已验证的进程 ID

我正在开发应该终止具有给定名称的进程的应用程序。我使用的操作系统是Windows7。问题是,对于任务管理器中列出的所有具有非空白用户名字段的进程,它工作正常。但是,当一个进程的用户名为空时,即使任务管理器也无法将其终止。谁能告诉我为什么有些进程没有用户名。在我的例子中,它是csrss.exewinlogon.exe,不幸的是我想杀死一个旧应用程序。我检查的所有其他进程都有正确的用户名。有什么方法可以将用户名添加到现有流程吗?任何人都可以推荐我更好的解决方案来杀死应用程序而不是终止进程()? 最佳答案 无法终止这些进程,因为您没有这样