假设我有10,000行C++代码.此代码的200行用于测试目的(例如,检查程序并显示错误消息).
在C++中有没有办法忽略或考虑代码的某些行(可能有预处理器关键字)?
在Visual Studio中,我们可以使用"附加到进程"来调试DLL.
有没有办法在Eclipse/StatET 中调试 R包的C/C++代码(例如调试链接到Scilab的外部代码的示例)?
假设A,B和C是矩阵.我有一个这样的列表:
list(A,list(B,C))
Run Code Online (Sandbox Code Playgroud)
我想将其转换为:
list(A,B,C)
Run Code Online (Sandbox Code Playgroud)
该unlist函数将矩阵转换为向量!
例如:
A=matrix(1:10,nrow=2)
B=list(A,list(A,A))
unlist(B)
Run Code Online (Sandbox Code Playgroud) 为什么第二种方法会因增加data.table大小而变慢:
library(data.table)
DF = data.table(x=rep(c("a","b","c"),each=40000000), y=sample(c(1,3,6),40000000,T), v=1:9)
Run Code Online (Sandbox Code Playgroud)
1:
DF1=DF2=DF
system.time(DF[y==6,"y"]<-10)
user system elapsed
2.793 0.699 3.497
Run Code Online (Sandbox Code Playgroud)
2:
system.time(DF1$y[DF1$y==6]<-10)
user system elapsed
6.525 1.555 8.107
Run Code Online (Sandbox Code Playgroud)
3:
system.time(DF2[y==6, y := 10]) # slowest!
user system elapsed
7.925 0.626 8.569
>sessionInfo()
R version 3.2.1 (2015-06-18)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 14.04.3 LTS
Run Code Online (Sandbox Code Playgroud)
有没有更快的方法来做到这一点?
我unordered_map用这段代码插入了元素:
myMap.insert(std::make_pair("A", 10));
myMap.insert(std::make_pair("B", 11));
myMap.insert(std::make_pair("C", 12));
myMap.insert(std::make_pair("D", 13));
Run Code Online (Sandbox Code Playgroud)
但是当我用这个命令来打印键时
for (const auto i : myMap)
{
cout << i.first << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
它们与插入它们的顺序不同.
是否可以保留订单?
有没有办法提取每一行的独特字符?
我知道我可以找到使用的文件的唯一行
sort -u file
Run Code Online (Sandbox Code Playgroud)
我想确定每一行的独特字符(类似于sort -u每一行).
澄清:鉴于此输入:
111223234213
111111111111
123123123213
121212122212
Run Code Online (Sandbox Code Playgroud)
我想得到这个输出:
1234
1
123
12
Run Code Online (Sandbox Code Playgroud) 我试图改变这个代码来处理std::vector<int>.
float accumulate(const std::vector<float>& v)
{
// copy the length of v and a pointer to the data onto the local stack
const size_t N = v.size();
const float* p = (N > 0) ? &v.front() : NULL;
__m128 mmSum = _mm_setzero_ps();
size_t i = 0;
// unrolled loop that adds up 4 elements at a time
for(; i < ROUND_DOWN(N, 4); i+=4)
{
mmSum = _mm_add_ps(mmSum, _mm_loadu_ps(p + i));
}
// add up single values until all …Run Code Online (Sandbox Code Playgroud) 我有两个矢量a和b,大小相同.
vector<int> a{ 4, 3, 1, 3, 1};
vector<bool> b{false,false,true,false,true};
Run Code Online (Sandbox Code Playgroud)
a如果b(同一索引)中的相同元素为真,我想删除元素.
应用函数后:a = 4,3,3
注意:我想使用std算法或函数而不是简单的for循环.
我有两个 vector<bool> A和B.
我想比较它们并计算相等的元素数量:
例如:
A = {0,1,0,1}
B = {0,0,1,1}
Run Code Online (Sandbox Code Playgroud)
结果将等于2.
我可以使用,_mm_cmpeq_epi8但它只比较16个元素(即我应该将0和1转换为char然后进行比较).是否可以每次使用SSE(或SIMD指令)比较128个元素?