考虑以下代码:
#include <stdio.h>
#include <stdlib.h>
int main() {
printf("main\n");
int a;
scanf("%d", &a);
printf("a = %d\n", a);
return 0;
}
int main1() {
printf("main1\n");
int a;
scanf("%d", &a);
printf("a = %d\n", a);
exit(0);
return 0;
}
int main2() {
printf("main2\n");
int a = getchar() - '0';
int b = getchar() - '0';
int c = getchar() - '0';
printf("a = %d\n", 100 * a + 10 * b + c);
exit(0);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
假设代码位于一个名为test.c的文件中,则以下代码可以正常工作(它显示“ a = 123”):
gcc -o …Run Code Online (Sandbox Code Playgroud) 假设我有以下两个包含正则表达式的字符串.我如何合并它们?更具体地说,我希望将这两个表达式作为替代.
$a = '# /[a-z] #i';
$b = '/ Moo /x';
$c = preg_magic_coalesce('|', $a, $b);
// Desired result should be equivalent to:
// '/ \/[a-zA-Z] |Moo/'
Run Code Online (Sandbox Code Playgroud)
当然,这样做作为字符串操作是不实际的,因为它涉及解析表达式,构造语法树,合并树然后输出相当于树的另一个正则表达式.没有这最后一步,我真的很开心.不幸的是,PHP没有RegExp类(或者是吗?).
有没有办法实现这个目标?顺便说一句,是否有其他语言提供方式?这不是一个很正常的场景吗?可能不会.:-(
或者,是否有一种方法可以有效地检查两个表达式中的任何一个是否匹配,哪一个匹配更早(如果它们在同一位置匹配,哪个匹配更长)?这就是我现在正在做的事情.不幸的是,我经常在长字符串上执行此操作,对于两种以上的模式.结果很慢(是的,这肯定是瓶颈).
我应该更具体 - 抱歉.$a并且$b是变量,它们的内容超出了我的控制范围!否则,我会手动合并它们.因此,我不能对使用的分隔符或正则表达式修饰符做任何假设.请注意,例如,我的第一个表达式使用i修饰符(忽略大小写),而第二个表达式使用x(扩展语法).因此,我不能只将两者连接起来,因为第二表达并不能忽视壳体和第一不使用扩展语法(和任何空白在其中是显著!
我刚刚打开我的新款MacBook Pro(耶!),现在正在为开发进行正确的设置.由于我想避免混乱,我想知道我是否真的需要安装Xcode工具(我从不使用IDE或Mac专用工具),因为我将使用MacPorts安装更新版本的GCC .
那么,安装Xcode有什么好处吗?有必要吗?它在幕后做了什么样的设置?基本上:我可以跳过这个或者它会回来困扰我,因为一些Unix开发工具只是假设OS X总是以这种方式设置?
我有一个函数,它根据Key(名称)返回字典上的条目,如果它不存在,则返回一个新创建的条目.
我的问题是"双锁":SomeFunction锁定_dictionary,检查键的存在,然后调用一个也锁定相同字典的函数,它似乎工作但我不确定是否有一个这种方法的潜在问题.
public Machine SomeFunction(string name)
{
lock (_dictionary)
{
if (!_dictionary.ContainsKey(name))
return CreateMachine(name);
return _dictionary[name];
}
}
private Machine CreateMachine(string name)
{
MachineSetup ms = new Machine(name);
lock(_dictionary)
{
_ictionary.Add(name, ms);
}
return vm;
}
Run Code Online (Sandbox Code Playgroud) 我想知道该Timer组件以及由于其使用或其使用的多个实例而产生的负面影响(如果有的话).在实践中,是否应该限制一个项目一次应该使用多少计时器?
我试图找到一种方法将两列因子组合成一列而不将因子水平改为数字.例如,考虑以下两个data.frame数据集
dataset 1 dataset 2
Number Student Number Student
1 Chris 1 Matt
2 Sarah 2 Keith
Run Code Online (Sandbox Code Playgroud)
我正在尝试从数据集1中取出"学生"列,从数据集2中取出"学生"列,然后创建一个包含名称"Chris","Sarah","Matt"和"Keith"的大学生列.
我试过了:
student.list<-c(dataset1[,2],dataset2[,2])
student.list
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用,因为名称变成带有c()函数的数字.我希望我的列表保留学生的姓名(即不将其转换为数字).我也试过cbind(),但是给出了与c()相同的问题......
谢谢
请考虑以下代码:
class Widget{};
template<typename T>
T &&foo2(T &&t){
return std::forward<T>( t );
}
/// Return 1st element
template<typename T>
typename std::tuple_element<0, typename std::decay<T>::type >::type &&foo(T &&t){
return std::forward< typename std::tuple_element<0, typename std::decay<T>::type >::type >
( std::get<0>(t) );
}
Widget w;
auto list = std::make_tuple(
w,
Widget()
);
int main()
{
auto &l = foo(list ); // This is NOT work
//auto &l2 = foo2( std::get<0>(list) ); // This one works.
}
Run Code Online (Sandbox Code Playgroud)
http://coliru.stacked-crooked.com/a/4d3b74ca6f043e45
当我尝试编译时,我收到以下错误:
error: invalid initialization of non-const reference of …Run Code Online (Sandbox Code Playgroud) 我有以下格式的数据:
gen = function () sample.int(10, replace = TRUE)
x = data.frame(A = gen(), C = gen(), G = gen(), T = gen())
Run Code Online (Sandbox Code Playgroud)
我现在想要在每行中附加行中所有元素的总和(我的实际函数更复杂,但sum说明了问题).
没有dplyr,我会写
cbind(x, Sum = apply(x, 1, sum))
Run Code Online (Sandbox Code Playgroud)
导致:
A C G T Sum
1 3 1 6 9 19
2 3 4 3 3 13
3 3 1 10 5 19
4 7 2 1 6 16
…
Run Code Online (Sandbox Code Playgroud)
但用dplyr做这件事似乎很难.
我试过了
x %>% rowwise() %>% mutate(Sum = sum(A : T))
Run Code Online (Sandbox Code Playgroud)
但结果不是每一行的总和,这是意想不到的东西,(对我来说)莫名其妙.
我也试过了
x %>% rowwise() …Run Code Online (Sandbox Code Playgroud) 我正在尝试学习Python,所以我想首先尝试查询IMDB以对照IMDB检查我的电影收藏;一切顺利
我所坚持的是如何处理名称中的特殊字符,以及如何将名称编码为URL会尊重的名称。
例如我有电影 Bru?no
如果使用urllib.parse.quoteget 对字符串进行编码 - Bru%CC%88no 这意味着当我使用OMDBAPI查询IMDB时,找不到电影。如果我通过OMDBAPI网站进行搜索,则它们会将名称编码为,Br%C3%BCno并且此搜索有效。
我假设编码使用的是其他标准,但是我无法解决需要做的事情