草庐IT

ordering_chars

全部标签

c++ - 是否可以从 C++ 中的模板类型获取 char* 名称

我想获取模板类型的字符串名称(constchar*)。很遗憾,我无法访问RTTI。templatestructSomeClass{constchar*GetClassName()const{return/*magicgoeshere*/;}}所以SomeClasssc;sc.GetClassName();//returns"int"这可能吗?我找不到办法,快要放弃了。感谢您的帮助。 最佳答案 不,它也不能可靠地与typeid一起工作。它将为您提供一些取决于编译器实现的内部字符串。int常见于“int”和“i”之类的东西.顺便说一句,

c++ - 如何将一系列数据从 char 数组复制到 vector 中?

我已将文件内容读入一个char数组,然后将其中的一些数据读入一个vector。如何将char数组的范围复制到vector中?vector和char数组都是同一类型(unsignedchar)。当前代码是这样的:intp=0;for(...){shortlen=(arr[p+1]我想通过使用push_back删除循环来改进这一点,怎么做? 最佳答案 可以使用insert()向vector添加内容。成员函数:vec.insert(vec.end(),arr,arr+len);当然,还有一个assign(),这可能更接近你想做的事情:ve

c++ - 为什么 `std::copy` 在我的测试程序中从 char 缓冲区读取一个 int 比 `memcpy` 慢 5 倍(!)?

这是thisquestion的后续行动我在哪里发布了这个程序:#include#include#include#include#include#include#include#include#includeclassStopwatch{public:typedefstd::chrono::high_resolution_clockClock;//!ConstructorstartsthestopwatchStopwatch():mStart(Clock::now()){}//!Returnselapsednumberofsecondsindecimalform.doubleelapse

c++ - extern const char* const SOME_CONSTANT 给我链接器错误

我想像这样在API中提供一个字符串常量:externconstchar*constSOME_CONSTANT;但是如果我在我的静态库源文件中将它定义为constchar*constSOME_CONSTANT="test";当链接到该库并使用SOME_CONSTANT时,我遇到链接器错误:Error1errorLNK2001:unresolvedexternalsymbol"charconst*constSOME_CONSTANT"(?SOME_CONSTANT@@3QBDB)从externconstchar*const声明和定义中删除指针常量(第二个const关键字)使其工作。如何使用

c++ - `int main(int argc, char* argv<::>)` 如何成为 main 的有效签名?

这个问题在这里已经有了答案:Howisthisbracketless/bracelesscodevalid?[duplicate](4个答案)关闭7年前。我在网站上看到intmain(intargc,char*argv)也可以用作main的签名.令人惊讶的是,以下程序:intmain(intargc,char*argv){return0;}编译时会发出GCC中的任何警告以及clang。它还在C++中编译。那么,intmain(intargc,char*argv)是怎么回事?是main的有效签名?

c++ - char\0 转义序列 - 这是什么意思?

我正在阅读这个例子Thereal"HelloWorld!"forCUDA!中的\0是什么意思charstr[16]="Hello\0\0\0\0\0\0";代表什么?我不确定为什么16个字符str里面有"Hello"然后全为零(这不是全局变量)。我如何确定它只包含零?” 最佳答案 '\0'是ASCIINULnullcharacter(ASCII码零)。指定数组中的所有零字节没有意义。以下是等价的:charstr[16]="Hello\0\0\0\0\0\0";charstr[16]="Hello";Ifanarrayispartia

c++ - 以安全的方式从 char* 创建 std::string

我有一个char*p,它指向一个以\0结尾的字符串。如何以异常安全的方式从中创建C++string?这是一个不安全的版本:stringfoo(){char*p=get_string();stringstr(p);free(p);returnstr;}一个明显的解决方案是try-catch-有更简单的方法吗? 最佳答案 您可以使用C++11中的shared_ptr或Boost:stringfoo(){shared_ptrp(get_string(),&free);stringstr(p.get());returnstr;}这使用了sh

c++ - 如何将 char* 指针转换为 C++ 字符串?

我有一个C++string。我需要将此字符串传递给接受char*参数的函数(例如-strchr())。a)我如何获得该指针?b)是否有一些等同于strschr()的函数适用于C++字符串? 最佳答案 获取C字符串等价于C++string对象使用c_str函数。定位第一次出现的achar在string对象中使用find_first_of功能。例子:strings="abc";//calltostrlenexpectschar*cout注意:我给出的strlen只是一个采用char*的函数示例。

c++ - 如何将 char 数组转换为 wchar_t 数组?

charcmd[40];driver=FuncGetDrive(driver);sprintf_s(cmd,"%c:\\test.exe",driver);我不能在中使用cmdsei.lpFile=cmad;所以,如何将char数组转换为wchar_t数组? 最佳答案 只需使用这个:staticwchar_t*charToWChar(constchar*text){constsize_tsize=strlen(text)+1;wchar_t*wText=newwchar_t[size];mbstowcs(wText,text,siz

c++ - 将 char 数组传递给函数

如何将char数组传递给函数。声明charfromName[64];charfromStreet[64];charfromSuburb[64];charfromCountry[64];函数调用Trans[i]->putAddress(fromName,fromStreet,fromSuburb,fromCountry);原型(prototype)voidputAddress(char,char,char,char);functionvoidputAddress(charfName,charfStreet,charfSuburb,charfCountry){return;}和错误“mai