相关疑难解决方法(0)

const_iterators更快吗?

我们的编码指南更喜欢const_iterator,因为它们比正常情况下快一点iterator.看起来编译器会在您使用时优化代码const_iterator.

这真的是对的吗?如果是的话,内部真正发生的事情会变得const_iterator更快吗?

编辑:我写了一个小测试来检查const_iteratorvs iterator,发现不同的结果:

对于迭代10,000个对象const_terator,花费几毫秒(大约16毫秒).但并非总是如此.有两次相等的迭代.

c++ iterator stl const-iterator

35
推荐指数
6
解决办法
1万
查看次数

GNU C中的__attribute __((const))vs __attribute __((pure))

__attribute__((const))__attribute__((pure))GNU C有什么区别?

__attribute__((const)) int f() {
    /* ... */
    return 4;
}
Run Code Online (Sandbox Code Playgroud)

VS

__attribute__((pure)) int f() {
    /* ... */
    return 4;
}
Run Code Online (Sandbox Code Playgroud)

c attributes gcc gnu const

30
推荐指数
2
解决办法
1万
查看次数

const限定指针的限制是多余的?

如果我们将f和g定义为:

void f(const int *restrict a, const int *restrict b, int *c){ ... }
void g(const int *         a, const int *         b, int *c){ ... }
Run Code Online (Sandbox Code Playgroud)
  1. 假设f和g具有相同的主体,从调用者的角度来看它们是否相同?
  2. 在被调用者中,我们可以对参数做出相同的假设吗?
  3. 编译器有相同的优化机会吗?

如果restrict多余,我希望所有三个答案都是肯定的.
否则,为什么不呢?

不要考虑糟糕的编程习惯,比如抛弃const限定符.

c

17
推荐指数
1
解决办法
409
查看次数

标签 统计

c ×2

attributes ×1

c++ ×1

const ×1

const-iterator ×1

gcc ×1

gnu ×1

iterator ×1

stl ×1