草庐IT

char_set

全部标签

c++ - 错误 : argument of type char* is incompatible with parameter of type LPCWSTR

#include#includeusingnamespacestd;intmain(){char*file="d:/tester";WIN32_FIND_DATAFindFileData;HANDLEhFind;hFind=FindFirstFile(file,&FindFileData);//lineoferrorsaysargumentoftypechar*isincompatiblewithparameteroftypeLPCWSTR}我无法理解错误。错误是什么以及如何解决错误?我正在制作一个控制台应用程序,需要检查目录中是否有文件。 最佳答案

c++ - 获取 std::set 元素地址时从 ‘const int*’ 到 ‘int*’ 的无效转换

我收到以下错误error:invalidconversionfrom‘constint*’to‘int*’以下是我的程序#includeintmain(intargc,char**argv){std::setintSet;intSet.insert(1);intSet.insert(2);intSet.insert(3);intSet.insert(4);intSet.insert(5);int*pAddress=&(*(intSet.find(4)));}我想要std::set中元素的地址,此代码不会给Microsoft编译器带来任何编译错误,但g++会给出此编译错误。

c++ - std::vector< std::vector<unsigned char>> 或 std::deque< std::vector<unsigned char>>?

我有一个现有的算法,如果可能的话,我需要稍微优化它。目前无法在此算法中进行大量更改。该算法适用于std::vector>的实例.它看起来像这样:typedefstd::vectorinternal_vector_t;std::vectorinternal_vectors;while(fetchinglotsofrecords){internal_vector_ttmp;//reads1Mbofcharsintmp...internal_vectors.push_back(tmp);//somemorework}//usethisinternal_vectors算法在internal_v

c++ - 如何识别代码中const char*和const char[]的类型?

constchar*s1="teststirg";constchars2[]="teststirg";我想要一个方法告诉我s1是“char*”而s2是“char[]”,怎么写这个方法? 最佳答案 使用模板:templateboolIsArray(T(&a)[SIZE]){returntrue;}templateboolIsArray(T*p){returnfalse;}这将在运行时进行评估。用法:if(IsArray(s1))...if(IsArray(s2))...如果有兴趣,您可以使用一些高级技术,它会告诉您这是编译时间。编辑:

c++ - C/C++ 中的 Char 数据类型

我正在尝试用Java调用C++DLL。在它的C++头文件中,有如下几行:#definea'102001'#defineb'102002'#definec'202001'#defined'202002'a、b、c、d分别是什么数据类型?它们是char还是char数组?我应该转换成什么Java中相应的数据类型? 最佳答案 作为Mysticial指出,这些是multicharacterliterals.它们的类型是依赖于实现的,但它可能是Javalong,因为它们使用48位。在Java中,您需要手动将它们转换为long:staticlon

c++ - char* 到 const wchar_t * 转换

我需要将字符指针转换为w_char*以便使用ParseNetworkString()。我已经尝试自己寻找解决方案,虽然我找到了一种解决方案,但有一个问题阻止我使用它:b1naryatr0phy在另一个帖子中说:std::wstringname(L"SteveNash");constwchar_t*szName=name.c_str();这几乎对我有用,除了我不能直接传递字符串,因为它的值并不总是相同,这意味着我不能只把它放在引号中。如果我用函数调用替换参数,那么第一行会给我一个错误(例如:std::wstringname(LgetIpAddress());我试过std::wstring

c++ - 为什么 unordered_set 操作像计数和删除返回一个 size_type?

显然,unordered_set::erase和unordered_set::count返回一些不是严格bool值的东西(从逻辑上讲,也就是说,我不是在谈论实际类型)。链接页面读取第三个版本的删除:size_typeerase(constkey_type&key);Removestheelementswiththekeyvaluekey这有一种语气,表明可能不止一个元素具有给定的键。它没有明确说明这一点,但听起来很像。现在,集合(即使是无序集合)的要点是每个元素都有一次。标准库承认bool类型的存在并将其用于bool值,如unordered_set::empty().那么,在上述情况下

c++ - 对无序集执行 set_difference

set_difference算法需要以下内容Theelementsintherangesshallalreadybeorderedaccordingtothissamecriterion哈希表不是这种情况。我正在考虑根据std::remove_copy实现集合差异A-B,其中删除标准是集合B中存在A的元素。是否有一种标准、有效、最快、最安全的方法来做到这一点? 最佳答案 如果您有两个哈希表,最有效的方法应该是遍历其中一个,在另一个哈希表中查找每个元素。然后将找不到的那些插入第三个容器中。粗略的草图可能如下所示:std::vector

c++ - 如何将 std::array<char, N> 转换为 char (&dest)[N]?

通过什么途径std::array到这样的功能:templatevoidsafe_func(char(&dest)[N]);?我试试这个:#includetemplateusingSafeArray=char[N];templatevoidsafe_func(char(&dest)[N]){}intmain(){SafeArraya1;safe_func(a1);std::arraya2;safe_func(*static_cast*>(static_cast(a2.data())));}它有效,但我怀疑,可能是我的Actor有问题,在其他编译器或平台上(我使用gcc/linux/amd

c++ - char数组的对齐

STLvector通常是如何实现的?它有一个char[]的原始存储,它偶尔会按某个因素调整大小,然后在元素被push_back时调用placementnew(我应该注意一种非常有趣的语法形式-语言学家应该研究pushed_back这样的动词形式:)然后是对齐要求。所以一个自然的问题出现了,我怎样才能在char[]上调用一个placementnew并确保满足对齐要求。因此,我在2003年的C++标准中搜索“对齐”一词,并找到了这些:第3.9段第5条对象类型具有对齐要求(3.9.1、3.9.2)。完整对象类型的对齐方式是一个实现定义的整数值,表示字节数;对象分配在满足其对象类型对齐要求的地