以下代码无法正常工作:
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
class Worker implements Runnable {
public void run() {
System.out.println("Started.");
process();
}
private Random random = new Random();
private Object lock1 = new Object();
private Object lock2 = new Object();
private static List<Integer> list1 = new ArrayList<Integer>();
private static List<Integer> list2 = new ArrayList<Integer>();
public void stageOne() {
synchronized (lock1) {
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
list1.add(random.nextInt(100));
}
}
public void stageTwo() {
synchronized (lock2) {
try { …Run Code Online (Sandbox Code Playgroud) 我有以下两个功能:
Thing* find_thing_by_name(const String & name, Map<String,Thing*> & thing_map)
{
auto it = thing_map.find(name);
return it->second;
}
const Thing* find_thing_by_name(const String & name, const Map<String,Thing*> & thing_map)
{
auto it = thing_map.find(name);
return it->second;
}
Run Code Online (Sandbox Code Playgroud)
这只是我想要解决的问题的一个简单示例.
函数具有完全相同的主体,但我需要处理我的地图的const和非const版本.我已经看到使用const转换使用成员函数处理此问题,但这些是非成员函数,我想使用模板解决此问题.如何编写一个减少代码重复的模板化函数?我甚至不确定从哪里开始.
假设我有一组元素 S = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }
我想创建3的组合并将它们组合在一起,使得多个组合中不会出现任何数字.
这是一个例子:
{ {3, 7, 9}, {1, 2, 4}, {5, 6, 8} }
组中数字的顺序无关紧要,整个示例中组的顺序也不重要.
简而言之,我想要原始集合中每个可能的组合的每个可能的组合,不包括出现在多个组中的数字的组合.
我的问题:这在运行时和内存方面是否真的可行?我的样本量可能在30-50左右.
如果是这样,创建此算法的最佳方法是什么?是否最好创建所有可能的组合,并仅在数量尚未出现时选择组?
我在Qt 5.6中写这个,这是一个基于C++的框架.
在c ++中,我有以下代码:
int x = -3;
x &= 0xffff;
cout << x;
Run Code Online (Sandbox Code Playgroud)
这产生了
65533
Run Code Online (Sandbox Code Playgroud)
但如果我删除否定,所以我有这个:
int x = 3;
x &= 0xffff;
cout << x;
Run Code Online (Sandbox Code Playgroud)
我只是得到3了结果
为什么第一个结果不会产生负数?我期望-3将符号扩展到16位,这应该仍然给出二进制补码负数,考虑到所有这些扩展位都是1.因此最重要的位也是1.