python 2.6.8
s= '''
foo
bar
baz
'''
>>>re.findall(r'^\S*',s,re.MULTILINE)
['', 'foo', 'bar', 'baz', '']
>>>ptrn = re.compile(r'^\S*',re.MULTILINE)
>>>ptrn.findall(s)
['', 'foo', 'bar', 'baz', '']
>>>ptrn.findall(s,re.MULTILINE)
['baz', '']
Run Code Online (Sandbox Code Playgroud)
为什么在findall中使用MULTILINE标志有区别?
有没有办法为不同的文件扩展名进行相同的语法突出显示?
例如:相同的突出显示
foo.c and foo.my_c_extension
Run Code Online (Sandbox Code Playgroud) 我正在涉及c指针,无法解释以下代码:
int main()
{
int i = -3;
int *ptr;
int **ptr2;
int ***ptr3;
ptr = &i;
ptr2 = &ptr;
ptr3 = &ptr2;
printf("ptr = %p\n",(void *)ptr);
printf("&ptr = %p\n",(void *)&ptr);
printAddr(&ptr);
printAddr2(&ptr2);
printAddr3(&ptr3);
return 0;
}
void printAddr(int **num)
{
printf("address of int ** = %p\n", (void *)&num);
}
void printAddr2(int ***num)
{
printf("address of int *** = %p\n", (void *)&num);
}
void printAddr3(int ****num)
{
printf("address of int **** = %p\n", (void *)&num);
}
Run Code Online (Sandbox Code Playgroud)
输出如下:
ptr = 0xbf9d64a0 …Run Code Online (Sandbox Code Playgroud) 我在阅读《加速的c ++》第4章,他们在其中教授如何将c ++程序划分为不同的文件。在这里,他们写道,我们不应该在头文件中使用“ using _ :: ”构造,因为包括头文件的人可能想要使用其他实现。但是在头文件中实现方法时,可以使用“ using”。你能澄清一下吗?在链接实现目标文件时,程序最终不会使用“ using ::”构造吗?这是代码:
//median.h file
#ifndef GUARD_median_h
#define GUARD_median_h
#include <algorithm>
#include <vector>
double median(std::vector<double>); // <<<<<<<< no "using std::vector"
#endif
Run Code Online (Sandbox Code Playgroud)
但是在位数.cpp中:
#include <vector>
#include <stdexcept>
using std::vector; // <<<<< "using" construct used
using std::domain_error; // <<<<< "using" construct used
double median(vector<double> vec){
if(vec.size() == 0) throw domain_error("median for an empty vector not defined");
//....... rest of the implementation
}
Run Code Online (Sandbox Code Playgroud)
要澄清一点:
这是我的客户调用上面的标头:
#include "median.h"
using my_vector_impl::vector;
//..some function...
std::vector v1;
double …Run Code Online (Sandbox Code Playgroud)