我想在第45行的文件service.cpp上的gdb中设置一个断点,我这样做:
gdb> break service.cpp:45
Run Code Online (Sandbox Code Playgroud)
问题是我的应用程序中有许多service.cpp文件,它没有选择我感兴趣的文件.如何指定正确的service.cpp文件?
从这个页面中可以看出,c ++ 11中的数学函数似乎都没有使用constexpr,而我相信所有这些函数都可以.所以这给我留下两个问题,一个是他们为什么选择不使函数constexpr.对于像sqrt我这样的函数来说,两个人可能会编写我自己的constexpr,但是像sin或cos这样的东西会比较棘手,所以它就在那里.
我需要比较字符串来决定它们是否代表相同的东西.这涉及人类输入的案例标题,其中缩写和其他小细节可能不同.例如,请考虑以下两个标题:
std::string first = "Henry C. Harper v. The Law Offices of Huey & Luey, LLP";
Run Code Online (Sandbox Code Playgroud)
相反:
std::string second = "Harper v. The Law Offices of Huey & Luey, LLP";
Run Code Online (Sandbox Code Playgroud)
人类可以快速判断这些很可能是同一个.我采取的当前方法是通过降低所有字母的小写并删除所有标点和空格来规范化字符串:
std::string firstNormalized = "henrycharpervthelawofficesofhueylueyllp";
Run Code Online (Sandbox Code Playgroud)
和:
std::string secondNormalized = "harpervthelawofficesofhueylueyllp";
Run Code Online (Sandbox Code Playgroud)
在这种情况下比较,一个是另一个的子序列,但是您可以想象其他更复杂的变体,其中不一定会发生,但它们具有共同的重要子序列.也可能偶尔出现人为输入错误,例如转置字母和拼写错误.
也许某种角色差异程序可以帮助?我已经看到用于比较要检入的代码差异的良好行差异程序,在字符的基础上有类似的东西,也许在提升?如果你可以统计连续字符的数量并将比率与未共享的字符进行比较,那么这可能是一个很好的启发式算法?
最后,我需要一个布尔决定,是否将它们视为相同或不相同.它不一定是完美的,但理想情况下应该很少出错.
我可以使用什么算法来给我一些量化关于两个字符串彼此之间的相似程度,然后我可以通过某种启发式转换为是/否答案?
language-agnostic algorithm heuristics stdstring string-comparison
我已经c++filt命令解码一个符号,相反的工具是什么,并修改一个符号名称?
如果我想调用dlsym()一个受损的C++函数名,这将非常有用.我宁愿不对代码中的名称进行硬编码,因为由于新的编译器版本或新编译器品牌的使用或目前由于编译多个平台而导致其随着时间的推移而发生变化.
是否有一种编程方式来获取在运行时表示C++函数的字符串,以便代码独立于编译器?可能这样做的一种方法是在编译时调用实用程序,为正在使用的编译器执行名称修改,并将适当的受损的C++符号名称插入到字符串中dlsym()以供使用.
这是我在这个站点上找到的最接近解决方案的方法,它通过使用固定的C样式名称来间接到您希望在库中定义的C++符号来实现dlsym(),但是如果您无法控制该库的内容提供,这不是一个选择.
我可以指定unsigned long类型的整数文字,如下所示:
const unsigned long example = 9UL;
Run Code Online (Sandbox Code Playgroud)
我如何为无符号字符做同样的事情?
const unsigned char example = 9U?;
Run Code Online (Sandbox Code Playgroud)
这是为了避免编译器警告:
unsigned char example2 = 0;
...
min(9U?, example2);
Run Code Online (Sandbox Code Playgroud)
我希望避免我目前所拥有的冗长的解决方法,并且没有'unsigned char'出现在调用min的行中而不在单独的行中声明变量中的9:
min(static_cast<unsigned char>(9), example2);
Run Code Online (Sandbox Code Playgroud) 我需要一个STL算法,该算法需要一个谓词和一个集合,并在集合中true只有一个成员满足该谓词的情况下返回,否则返回false。
我将如何使用STL算法来做到这一点?
例如,用STL算法代码替换以下内容以表示相同的返回值。
int count = 0;
for( auto itr = c.begin(); itr != c.end(); ++itr ) {
if ( predicate( *itr ) ) {
if ( ++count > 1 ) {
break;
}
}
}
return 1 == count;
Run Code Online (Sandbox Code Playgroud) 我知道我的析构函数在堆栈的正常展开时调用,并且在抛出异常时调用,但是在调用exit()时调用.
还有其他情况我的析构函数不会被调用吗?信号如SIGINT或SIGSEGV怎么样?我认为对于SIGSEGV,它们不会被调用,但对于SIGNINT它们是,我怎么知道哪些信号将展开堆栈?
还有其他情况不会被召唤吗?
对于常规C字符串,空字符'\0'表示数据的结尾.
那么std::string,我可以使用嵌入空字符的字符串吗?
我的任务是将大量的.doc文件转换为.pdf.我的主管要我这样做的唯一方法是通过MSWord 2010.我知道我应该能够通过python COM自动化实现自动化.唯一的问题是我不知道如何以及从哪里开始.我试着寻找一些教程,但却找不到(可能是我可能有,但我不知道我在找什么).
现在我正在阅读这个.不知道这会有多大用处.
在C++中,bool(s)之间的&&(逻辑)和&(按位)之间有什么区别吗?
bool val1 = foo();
bool val2 = bar();
bool case1 = val1 & val2;
bool case2 = val1 && val2;
Run Code Online (Sandbox Code Playgroud)
是case1与case2相同或如果不究竟如何他们有所不同,为什么会选择一个一个比其他?是一个按位和bools便携式?
c++ boolean bitwise-operators logical-operators language-lawyer
c++ ×7
algorithm ×2
c++11 ×2
stdstring ×2
ambiguity ×1
automation ×1
boolean ×1
breakpoints ×1
c-strings ×1
cmath ×1
constants ×1
constexpr ×1
counting ×1
demangler ×1
destructor ×1
dlsym ×1
exception ×1
exit ×1
gdb ×1
heuristics ×1
integer ×1
ms-word ×1
pdf ×1
python ×1
signals ×1
win32com ×1