标签: c++

确定整数是否在具有已知值集的两个整数(包括)之间的最快方法

是否有比x >= start && x <= endC或C++ 更快的方法来测试整数是否在两个整数之间?

更新:我的特定平台是iOS.这是盒子模糊功能的一部分,它将像素限制为给定方块中的圆圈.

更新:在尝试接受的答案后,我在一行代码上以正常x >= start && x <= end方式执行了一个数量级的加速.

更新:这是来自XCode的汇编程序的after和before代码:

新方法

// diff = (end - start) + 1
#define POINT_IN_RANGE_AND_INCREMENT(p, range) ((p++ - range.start) < range.diff)

Ltmp1313:
 ldr    r0, [sp, #176] @ 4-byte Reload
 ldr    r1, [sp, #164] @ 4-byte Reload
 ldr    r0, [r0]
 ldr    r1, [r1]
 sub.w  r0, r9, r0
 cmp    r0, r1
 blo    LBB44_30
Run Code Online (Sandbox Code Playgroud)

老路

#define POINT_IN_RANGE_AND_INCREMENT(p, range) (p <= range.end …
Run Code Online (Sandbox Code Playgroud)

c c++ math performance

376
推荐指数
4
解决办法
6万
查看次数

如何检测圣诞树?

哪些图像处理技术可用于实现检测以下图像中显示的圣诞树的应用程序?

我正在寻找适用于所有这些图像的解决方案.因此,需要训练haar级联分类器模板匹配的方法不是很有趣.

我正在寻找可以用任何编程语言编写的东西,只要它只使用开源技术.必须使用此问题上共享的图像测试解决方案.有6个输入图像,答案应显示处理每个图像的结果.最后,对于每个输出图像,必须有红线绘制以包围检测到的树.

您将如何以编程方式检测这些图像中的树?

c++ python opencv image-processing computer-vision

376
推荐指数
10
解决办法
2万
查看次数

C++中不区分大小写的字符串比较

在不将字符串转换为全部大写或全部小写的情况下,在C++中进行不区分大小写的字符串比较的最佳方法是什么?

请说明这些方法是否符合Unicode,以及它们的可移植性.

c++ string

373
推荐指数
20
解决办法
45万
查看次数

何时在C++中使用extern

我正在阅读"用C++思考",它刚刚介绍了这个extern声明.例如:

extern int x;
extern float y;
Run Code Online (Sandbox Code Playgroud)

我想我理解了意义(没有定义的声明),但我想知道什么时候它有用.

有人能提供一个例子吗?

c++ variable-declaration

372
推荐指数
4
解决办法
35万
查看次数

使用'const'作为函数参数

你走多远const?您是否只是const在必要时制作功能,或者您是否全力以赴并在任何地方使用它?例如,想象一个简单的mutator,它接受一个布尔参数:

void SetValue(const bool b) { my_val_ = b; }
Run Code Online (Sandbox Code Playgroud)

const实际上有用吗?我个人选择广泛使用它,包括参数,但在这种情况下,我想知道它是否值得?

我还惊讶地发现你可以省略const函数声明中的参数,但可以将它包含在函数定义中,例如:

.h文件

void func(int n, long l);
Run Code Online (Sandbox Code Playgroud)

.cpp文件

void func(const int n, const long l)
Run Code Online (Sandbox Code Playgroud)

是否有一个原因?这对我来说似乎有点不寻常.

c++ const

368
推荐指数
15
解决办法
24万
查看次数

什么是std :: promise?

我相当熟悉C++ 11的std::thread,std::asyncstd::future部件(例如见这个答案),这是直接的.

但是,我不能完全理解std::promise它是什么,它做什么以及在哪种情况下最好使用它.标准文档本身不包含其类概要之外的大量信息,也不仅仅是:: thread.

有人可以给出一个简短,简洁的例子,说明std::promise需要哪种情况以及最惯用的解决方案?

c++ multithreading standard-library promise c++11

367
推荐指数
7
解决办法
8万
查看次数

何时使用引用与指针

我理解指针与引用的语法和一般语义,但是我应该如何决定何时在API中使用引用或指针?或多或少?

当然,有些情况需要一个或另一个(operator++需要一个引用参数),但总的来说,我发现我更喜欢使用指针(和const指针),因为语法清楚地表明变量是破坏性地传递的.

例如,在以下代码中:

void add_one(int& n) { n += 1; }
void add_one(int* const n) { *n += 1; }
int main() {
  int a = 0;
  add_one(a); // Not clear that a may be modified
  add_one(&a); // 'a' is clearly being passed destructively
}
Run Code Online (Sandbox Code Playgroud)

使用指针,它总是(更加)明显地发生了什么,所以对于API等,清晰度是一个大问题,指针不是比引用更合适?这是否意味着只应在必要时使用引用(例如operator++)?是否有任何性能问题?

编辑(已完成):

除了允许NULL值和处理原始数组之外,似乎选择归结为个人偏好.我已经接受了下面引用Google的C++样式指南的答案,因为它们提出了"引用可能令人困惑,因为它们具有值语法但指针语义"的观点.

由于清理不应该为NULL的指针参数所需的额外工作(例如,add_one(0)将调用指针版本并在运行时中断),从可维护性的角度来看,使用必须存在对象的引用是有意义的,尽管这是一种耻辱失去句法的清晰度.

c++ pointers reference

366
推荐指数
11
解决办法
18万
查看次数

为什么C++ STL不提供任何"树"容器?

为什么C++ STL不提供任何"树"容器,而最好使用什么?

我想将对象的层次结构存储为树,而不是使用树作为性能增强...

c++ tree stl

362
推荐指数
13
解决办法
19万
查看次数

如何在Visual Studio 2010中使用Boost

有关如何在Visual Studio中的空项目中使用Boost库的一步一步解释是什么?

c++ boost visual-studio-2010

361
推荐指数
9
解决办法
26万
查看次数

如何在gdb中打印长字符串的完整值?

我想在GDB中打印C字符串的全长.默认情况下它是缩写,如何强制GDB打印整个字符串?

c c++ string debugging gdb

359
推荐指数
5
解决办法
18万
查看次数