小编aja*_*ddy的帖子

如何传递子字符串而不在c ++中实际创建临时对象

让我们说我有一个功能

str_rev(string &s, int len) {}
Run Code Online (Sandbox Code Playgroud)

它反转长度为len的字符串s

我想要从索引5和长度10开始反转长字符串的子字符串

为此,我被迫首先调用substring函数,然后调用str_rev函数传递子字符串

sub_string = long_str.substr(5, 10)
str_rev(sub_string, 10);
Run Code Online (Sandbox Code Playgroud)

有没有办法在没有实际创建临时对象的情况下实现这一目标?

c++ string

4
推荐指数
1
解决办法
1688
查看次数

访问数组比访问向量更快吗?

可能重复:
使用数组或std ::向量C++,有什么性能上的差距?
std :: vector比普通数组慢得多?

memory是1000个元素的向量array []是一个1000个元素的整数数组

for (iteration = 0; iteration < numiterations; iteration++) {
    for (j = 1; j < numints; j++) {
       memory[j] += memory[j - 1];
       //array[j] += array[j - 1];
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我跑100次迭代后比较for循环的时间,相比于载体的用于访问所需的时间是非常小

为什么会这样?因为我认为两者都需要不变且几乎相同的时间..

c++ arrays stdvector

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

标签 统计

c++ ×2

arrays ×1

stdvector ×1

string ×1