我正在 Unix 中的 Eclipse 中开发一个 Java 项目,并从 IDE 运行该项目。该过程似乎会永远运行,并且不会响应我点击红色“停止”按钮。我真的想避免重新启动我的 IDE。谁能建议如何杀死嵌入式进程?
我有一个脚本,我使用Perl数组.每个数组包含数十万个项目.
我经常需要在数组中间动态添加项目,或从中删除项目.
我想了解我是否更好地使用链接列表而不是Perl数组,因为我经常插入和删除
所以我的问题是:
splice()
实施?splice()
当用于在Perl数组中将项x
插入索引时,复杂性是多少i
谢谢!
我使用Qt用C++编写,我有一个列表小部件.
我启用了内部拖放功能,使用:
list->setDragDropMode(QAbstractItemView::InternalMove);
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能捕捉到这样一个拖放动作完成的信号?
谢谢!
在Python中,有一种非常好的方法可以简化字符串的创建,使代码美观可读.
例如,将打印以下代码 ExampleProgram -E- Cannot do something
print_msg('E', 'Cannot do something')
def print_msg(type, msg):
print 'ExampleProgram -{0}- {1}'.format(type, msg)
Run Code Online (Sandbox Code Playgroud)
即我可以使用{x}
语法在字符串中指定"slots" ,其中x
是参数索引,然后返回一个新字符串,在该字符串中,它将这些插槽替换为传递给.format()
方法的参数.
目前有了我的Java知识,我会以这种丑陋的方式实现这样的方法:
void printMsg(String type, String msg) {
System.out.println("ExampleProgram -" + type + "- " + msg);
}
Run Code Online (Sandbox Code Playgroud)
有没有相当于Python的.format()
字符串方法的东西?
我有以下结构:
std::map<int, std::map<int, int>> my_map;
Run Code Online (Sandbox Code Playgroud)
我想检查密钥是否my_map[3][5]
存在。
除了以下方法之外,还有更简单/更短的方法吗?
if (my_map.find(3) != my_map.end()) {
std::map<int, int>& internal_map = my_map[3];
if (internal_map.find(5) != internal_map.end()) {
// ... Do something ...
}
}
Run Code Online (Sandbox Code Playgroud) 我有一些 BGR 图像:
cv::Mat image;
Run Code Online (Sandbox Code Playgroud)
我想从图像中的所有像素中减去向量:
[10, 103, 196]
Run Code Online (Sandbox Code Playgroud)
这意味着所有像素的蓝色通道将减少 10,绿色通道将减少 103,红色通道将减少 196。
是否有标准方法可以做到这一点,或者我应该在所有通道和所有像素上运行 for 循环?
我正在尝试检查我的字符串是否包含一些正则表达式。
奇怪的是,虽然re.sub()
会找到正则表达式并将其替换,re.match()
但不会返回任何结果...
这是我的用法:
re.match():-尝试匹配模式,\s*param2
-不返回任何内容
>>> str = 'func(param1, param2)'
>>> str
'func(param1, param2)'
>>> results = re.match(r',\s*param2', str)
>>> print(results)
None
Run Code Online (Sandbox Code Playgroud)
re.sub():-用,\s*param2
“ hello” 成功替换相同的模式
>>> str = 'func(param1, param2)'
>>> str
'func(param1, param2)'
>>> new_str = re.sub(r',\s*param2', ' hello', str)
>>> new_str
'func(param1 hello)'
Run Code Online (Sandbox Code Playgroud)
如何在,\s*param2
不替换的情况下匹配模式?
我有一个a
类型的矩阵CV_32FC2
.
我试图将它转换为一个b
带有类型的新矩阵CV_32FC1
,但似乎矩阵b
也得到了CV_32FC2
.
代码示例和输出:
cv::Mat b;
a.convertTo(b, CV_32FC1);
std::cout << a.type() << " " << b.type() << std::endl;
Run Code Online (Sandbox Code Playgroud)
产生输出:
13 13
Run Code Online (Sandbox Code Playgroud)
我希望b
改变的类型5
,即枚举值CV_32FC1
我有以下方法:
@GET
@Path("/myFunc")
public String myFunc(@QueryParam("input") String input) {
if (! input.startsWith("123")) {
return "Usage error: input must start with '123'";
}
return "Success";
}
Run Code Online (Sandbox Code Playgroud)
问题在于逻辑上,当我返回字符串时"Usage error: input must start with '123'"
,返回代码是200.如何更改它,以便我可以返回字符串,同时将返回代码更改为400?
当以下代码没有达到我预期的效果时,我感到震惊:
lines_list = ['this is line 1\n', 'this is line 2\n', 'this is line 3\n']
for line in lines_list:
line = line.strip()
Run Code Online (Sandbox Code Playgroud)
在Perl或Java中,我的用法效果很好。Python 是具有独特行为的Python。
在 Java 中,这将起作用:
lines_list = ['this is line 1\n', 'this is line 2\n', 'this is line 3\n']
for line in lines_list:
line = line.strip()
Run Code Online (Sandbox Code Playgroud)
在 Perl 中,这将起作用:
String[] lines = {"this is line 1\n", "this is line 2\n", "this is line 3\n"};
for (String line : lines) {
line = line.trim();
} …
Run Code Online (Sandbox Code Playgroud) 去年,我了解到许多开发人员开始开发在 Web 浏览器上运行的桌面应用程序。
我也试图进入它,我试图了解我应该如何开始这种开发。
我首先想我应该创建一个常规的客户端-服务器应用程序,即使用 Apache Tomcat 或 PHP,并且每次启动应用程序时,在本地主机上启动一个新服务器并打开将加载应用程序的浏览器。
我最近了解到有一些软件包可以为您完成服务器-客户端工作,例如 node-webkit。
我不知道从哪里开始,我很困惑......
当开发人员说他们使用 Javascript 或在 Web 浏览器上运行的桌面应用程序开发桌面应用程序时 - 他们是否可能意味着使用 node-webkit?或者他们是否执行我上面描述的复杂结构(本地主机上的 JSP/PHP 服务器)?
考虑以下抽象类AbstractEngine
:
class AbstractEngine {
static void init();
static std::string getName();
};
Run Code Online (Sandbox Code Playgroud)
并考虑以下2个实现者类:
class Engine1 : public AbstractEngine {
static std::string getName();
};
class Engine2 : public AbstractEngine {
static std::string getName();
};
Run Code Online (Sandbox Code Playgroud)
并且,init()
函数应该getName()
根据类的类型调用正确的:
void AbstractEngine::init() {
std::cout << getName() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
例如,如果我打电话Engine1::init()
,我希望它打电话Engine1::getName()
而不是AbstractEngine::getName()
我怎样才能AbstractEngine::init()
真正调用正确的实现getName()
?
我的代码如下所示:
#include <list>
#include <thread>
void my_function(int val) {
// Empty function
}
int main() {
std::list<std::thread> threads;
for (int i = 0 ; i < 10 ; i++) {
threads.push_back(std::thread(my_function, i));
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我使用的事实threads.push_back()
意味着我运行了复制构造函数std::thread::thread(const thread&)
.
安全吗?
我应该用std::move
吗?
请假设我事先并不知道我需要多少线程,所以用数组或者用一个替换列表std::vector
对我来说不是一个选项(std::vector
只有当我知道线程的数量时才会有一个选项)前进,因为我买不起矢量的realloc
操作).
c++ ×4
java ×3
python ×3
opencv ×2
arrays ×1
eclipse ×1
inheritance ×1
javascript ×1
jersey ×1
linked-list ×1
list ×1
loops ×1
node-webkit ×1
node.js ×1
performance ×1
perl ×1
polymorphism ×1
qt ×1
regex ×1
stdthread ×1
stl ×1
string ×1
unix ×1