我有一个包含大约 5000 行的文件,我想删除所有包含“some_string”的行,所以我首先搜索/some_string然后执行:g//d. 删除约 90% 的行需要 5 分钟以上的时间。是什么赋予了?
相比之下,如果我运行sed -i '/some_string/d' some_file它需要 46 毫秒。
我知道静态变量是在编译时初始化的,但是静态对象呢?
例如,如果我有以下代码:
class A {
A();
};
A::A(){
std::cout << "Constructing A" << std::endl;
}
int main(){
std::cout << "Hello World!" << std::endl;
static A A_obj;
std::cout << "Goodbye cruel world" << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我应该期望输出是:
Hello World!
Constructing A
Goodbye cruel world
Run Code Online (Sandbox Code Playgroud)
要么
Constructing A
Hello World!
Goodbye cruel world
Run Code Online (Sandbox Code Playgroud) 我试图生成一些随机的64位数字时遇到了这个奇怪的问题,并注意到这段代码只能给出低32位<0x8000_0000的数字.
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <cstdlib>
#include <ctime>
using namespace std;
void bin_range(uint64_t addr);
void print_range();
uint64_t GiB = 1024*1024*1024;
#define NUM_TRIES 10000
int range[14] = {0};
int main(){
srand(time(NULL));
for(int i = 0; i < NUM_TRIES; ++i){
uint64_t addr = ((uint64_t) rand() << 32) | rand();
addr &= 0x3FFFFFFFFFull;
if(addr > ((uint64_t) 14*GiB)){
--i;
continue;
}
bin_range(addr);
}
print_range();
return 0;
}
void bin_range(uint64_t addr){
if(addr < GiB)
range[0]++;
else if(addr < 2*GiB)
range[1]++; …Run Code Online (Sandbox Code Playgroud)