小编whi*_*kar的帖子

C++ STL unordered_map如何解决冲突?

C++ STL unordered_map如何解决冲突?

查看http://www.cplusplus.com/reference/unordered_map/unordered_map/,它显示"唯一键容器中没有两个元素可以具有等效键."

这应该意味着容器确实解决了碰撞.但是,该页面并没有告诉我它是如何做到的.我知道一些解决冲突的方法,比如使用链表和/或探测.我想知道的是c ++ STL unordered_map如何解析它.

c++ stl unordered-map

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

Python工作进程池和运行多个进程之间有什么区别?

我不确定何时使用工作池与多个进程.

processes = []

for m in range(1,5):
       p = Process(target=some_function)
       p.start()
       processes.append(p)

for p in processes:
       p.join()
Run Code Online (Sandbox Code Playgroud)

VS

if __name__ == '__main__':
    # start 4 worker processes
    with Pool(processes=4) as pool:
        pool_outputs = pool.map(another_function, inputs)
Run Code Online (Sandbox Code Playgroud)

python pool process worker multiprocessing

9
推荐指数
2
解决办法
4362
查看次数

C++中的nullptr与C#中的null相同吗?

C++中的nullptr与C#中的null相同吗?

似乎没有人在Google或Stackflow上问过这个问题.

c# c++ null nullptr

8
推荐指数
2
解决办法
3760
查看次数

当堆栈没有底层函数时,为什么C++标准队列有后退功能?

在许多非官方的C++参考网站之一,列出了成员函数front()back()for std::queue.但是,std::stack只有top()功能.

堆栈没有bottom()函数是有意义的,因为这是堆栈的定义.

我没有得到的是为什么C++标准委员会选择不遵循队列的定义并为队列提供back()功能,并选择遵循堆栈的定义而不提供bottom()功能.

c++ queue stack std

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

Python多进程池。当工作进程之一确定不需要执行更多工作时,如何退出脚本?

mp.set_start_method('spawn')
total_count = Counter(0)
pool = mp.Pool(initializer=init, initargs=(total_count,), processes=num_proc)    

pool.map(part_crack_helper, product(seed_str, repeat=4))
pool.close()
pool.join()
Run Code Online (Sandbox Code Playgroud)

因此,我有一组工作人员在做一些工作。它只需要找到一个解决方案。因此,当一个工作进程找到解决方案时,我想停止一切。

我想到的一种方法是只调用sys.exit()。但是,由于其他进程正在运行,因此似乎无法正常工作。

另一种方法是检查每个进程调用的返回值(part_crack_helper函数的返回值),然后在该进程上终止调用。但是,我不知道在使用该map函数时该怎么做。

我应该如何实现呢?

python pool worker multiprocessing

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

C++ typedef一个std :: pair,然后使用typedef来声明一个map

假设我有这种typedef

typedef std::pair<std::string, uint32_t> MyType;
Run Code Online (Sandbox Code Playgroud)

然后,如果我还想使用MyType创建地图,我该怎么做?

我不想重新键入对中的两种类型:

map<std::string, uint32_t> myMap;
Run Code Online (Sandbox Code Playgroud)

我想要的东西:

map<MyType's first type, MyType's second type> myMap;
Run Code Online (Sandbox Code Playgroud)

有没有办法像使用我的typedef MyType而不是重新键入类型?

c++ dictionary typedef std-pair

5
推荐指数
2
解决办法
9185
查看次数

tkinter中的“ askquestion”和“ askyesno”有什么区别?

Tkinter中messagebox 的askquestion()askyesno()函数之间有什么区别?

我在此网站上找到了这两个功能:http : //infohost.nmt.edu/tcc/help/pubs/tkinter/web/tkMessageBox.html

python tkinter tkmessagebox

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

当该地址中的内容被换出并返回时,指针中存储的地址会发生什么变化?

假设指针指向某个地址的对象.

之后,因为没有足够的内存,操作系统会将一些页面从内存中交换出来,并且对象位于其中一个页面中而指针则不是.

然后,具有该对象的页面稍后交换到内存中的不同位置.

存储在指针中的地址会发生什么变化?地址是否更新到对象所在的新地址?

或者有什么东西让我误解了内存管理的工作原理?

c c++ paging pointers memory-management

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

为什么c#可以返回对象,而且从STL容器弹出时c ++不能?

在C#中,当您从堆栈弹出时,它会从堆栈中删除该对象并返回该对象.

但是,在C++中因为http://blogs.msdn.com/b/zhanli/archive/2010/06/29/c-tips-why-the-pop-method-of-stl-stack-does-not- return-a-value.aspx,pop函数不会返回该对象.

是什么让C#能够做一些C++无法做到的事情?或者更像C#并不关心这种异常情况是否发生?"如果operator =或copy构造函数抛出异常,那么我们将遇到麻烦:堆栈的内部状态已经改变,但是我们还没有获得弹出元素." (来自链接)

c# c++ stack stl

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

可以手动泄漏内存吗?

所以我想知道如果我把'\ 0'放在"malloc"ed内存的中间会发生什么.

我遇到了这个问题.释放char数组时内存泄漏

在Jesse Good的回答中,它说这行将打印出"malloc"内存的大小.

std::cout << *((std::size_t*)arr - 1) << std::endl;
Run Code Online (Sandbox Code Playgroud)

这是否意味着如果我修改((std :: size_t)arr - 1)的值,当我调用"free"时将释放的内存大小将不同并且如果修改后的值小于原值?

c++ memory memory-leaks memory-management

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