相关疑难解决方法(0)

std :: pair <int,int> vs struct with two int's

在ACM示例中,我必须构建一个用于动态编程的大表.我不得不在每个单元格中存储两个整数,所以我决定去找一个std::pair<int, int>.但是,分配大量的数组需要1.5秒:

std::pair<int, int> table[1001][1001];
Run Code Online (Sandbox Code Playgroud)

之后,我将此代码更改为

struct Cell {
    int first;
    int second;
}

Cell table[1001][1001];
Run Code Online (Sandbox Code Playgroud)

并且分配花了0秒.

是什么解释了这个巨大的时间差异?

c++ performance std-pair

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

map operator []和bool作为值

我们知道如果我们尝试使用std::mapoperator [] 访问不存在的键,该函数将使用该键插入一个新元素.

我们有: std::map<std::string, bool> map_xxx;

是否保证在访问不存在的密钥后map_xxx["nonexistent_key"],第二个参数的值将始终为false

PS.如果没有,任何想法如何有这种行为?

c++ stl map

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

在哪里定义int()为0?

#include <iostream>
#include <string>

int main() {
    std::pair<std::string, int> s;
    std::cout << s.second << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

在这个例子s.second0虽然没有初始化.您能否提供C++标准的链接,其中定义了为什么0.我知道这是因为s.second被初始化了int(),但是无法找到标准中所说的那条int()线0.

c++ standards

0
推荐指数
2
解决办法
193
查看次数

标签 统计

c++ ×3

map ×1

performance ×1

standards ×1

std-pair ×1

stl ×1