小编mer*_*011的帖子

如何在没有换行符的情况下捕获寄存器中vim命令的输出?

这与此问题有关: 如何将ex命令输出重定向到当前缓冲区或文件?

但是,使用的问题:redir是它在输出前面会产生3或4个额外的换行符,并且使用替换函数似乎很难删除它们.

例如,如果我执行以下操作:

:redir @a  
:pwd  
:redir END 
Run Code Online (Sandbox Code Playgroud)

内容@a由三个空行组成,然后是正常的预期输出.

我尝试使用以下内容发布流程:

:let @b = substitute(@a, '\s*\(.\{-}\)\s*', '\1', '')
Run Code Online (Sandbox Code Playgroud)

但结果是@b内容与内容相同@a.

有没有人知道更有效(即工作)的后处理方式,或者替换:redir它没有那些额外的线?

vim

6
推荐指数
1
解决办法
837
查看次数

如何在普通TeX中强制分页?

如果这看起来像是一个非常新的问题,我表示道歉,但我直接谷歌搜索的尝试似乎遭受了TeX帮助页面的大量干扰,而且我没有方便的TeX参考书.

tex

6
推荐指数
1
解决办法
3434
查看次数

用于训练随机森林二元分类器的正负训练实例的正确比率

我意识到相关问题列车集中的正/负比例表明,正负训练样例的1比1对于Rocchio算法是有利的.

然而,这个问题与相关问题的不同之处在于它涉及随机森林模型以及以下两种方式.

1)我有大量的训练数据可供使用,使用更多训练样例的主要瓶颈是训练迭代时间.也就是说,我不想花一个多晚的时间训练一个排名因为我想快速迭代.

2)在实践中,分类器可能会看到每4个负例的1个正例.

在这种情况下,我应该训练使用比正面例子更多的负面例子,还是使用相同数量的正面和负面例子?

machine-learning random-forest

6
推荐指数
2
解决办法
3783
查看次数

在C++中获取Python的`defaultdict`行为最简单的方法是什么?

在Python中,有一个被称为类的类defaultdict,它本质上是一个字典,它将根据用户在构造时指定的函数按需构造元素.

C++中是否已经存在类似的类,或者我是否必须通过继承map和覆盖at方法来自己创建它?

c++ python

6
推荐指数
2
解决办法
2569
查看次数

g ++ 4.8.1 C++线程,std :: system_error - 不允许操作?

这不是一个重复的问题,因为提供的解决方案不适用于我的编译器.我试图从这个问题编译并运行以下示例.

#include <thread>
#include <iostream>

int main(int, char **){
    std::thread tt([](){ std::cout<<"Thread!"<<std::endl; });
    tt.join();
}
Run Code Online (Sandbox Code Playgroud)

我试图使用原始问题中提供的解决方案以及此复制品的已接受答案.但是,尽管我尝试了列出的所有组合,特别是尝试过

g++  main.cpp -o main.out -pthread -std=c++11
Run Code Online (Sandbox Code Playgroud)

当我运行生成的可执行文件时,我仍然得到

terminate called after throwing an instance of 'std::system_error'
  what():  Enable multithreading to use std::thread: Operation not permitted
Aborted (core dumped)
Run Code Online (Sandbox Code Playgroud)

这是输出g++ --version.

g++ (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY …
Run Code Online (Sandbox Code Playgroud)

c++ linux multithreading g++ c++11

6
推荐指数
1
解决办法
6805
查看次数

如何取消已经开始的vim录制,以便它不会覆盖我之前录制的宏?

我不小心碰到qq@q,而我的vim现在正在录音q.如果我q再次输入,它将覆盖以前录制的宏.

还有办法吗?

  1. 取消录制,以便不覆盖前一个宏或
  2. 恢复以前的宏而不从头开始重新录制?

vim macros

6
推荐指数
1
解决办法
968
查看次数

为什么缓冲区末尾和保存的帧指针之间有8个字节?

我正在为课程作业进行堆叠式练习,我已完成作业,但有一个方面我不明白.

这是目标计划:

#include <stdio.h>                                             
#include <stdlib.h>                                            
#include <string.h>                                            

int bar(char *arg, char *out)                                  
{                                                              
  strcpy(out, arg);                                            
  return 0;                                                    
}                                                              

void foo(char *argv[])                                         
{                                                              
  char buf[256];                                               
  bar(argv[1], buf);                                           
}                                                              

int main(int argc, char *argv[])                               
{                                                              
  if (argc != 2)                                               
    {                                                          
      fprintf(stderr, "target1: argc != 2\n");                 
      exit(EXIT_FAILURE);                                      
    }                                                          
  foo(argv);                                                   
  return 0;                                                    
}                                                              
Run Code Online (Sandbox Code Playgroud)

以下是在x86运行的虚拟机上Ubuntu 12.04使用已ASLR禁用的编译命令.

gcc -ggdb -m32 -g -std=c99 -D_GNU_SOURCE -fno-stack-protector  -m32  target1.c   -o target1
execstack -s target1
Run Code Online (Sandbox Code Playgroud)

当我在堆栈上查看这个程序的内存时,我看到它buf有地址0xbffffc40.此外,保存的帧指针存储在0xbffffd48,并且返回地址存储在0xbffffd4c …

c c++ linux stack-overflow gcc

6
推荐指数
1
解决办法
813
查看次数

是否有可能在lambda中捕获可变数量的参数?

考虑以下一组示例.

  1. 该函数takeOnlyVoidFunction采用零参数的函数并简单地执行它.
  2. 该函数takeVariableArguments接受可变数量的参数并使用参数执行函数.
  3. 该函数captureVariableArgs尝试将第二个函数转换为第一个函数可接受的lambda形式,但它不能编译.

如何使函数captureVariableArgs编译并展示将具有可变数量参数的函数转换为不带参数的闭包的正确行为?

#include <stdio.h>
#include <functional>

void takeOnlyVoidFunction(std::function<void()> task) {
    task();
}

template<typename _Callable, typename... _Args>
    void takeVariableArguments(_Callable&& __f, _Args&&... __args) {
     __f(__args...);
}

// How can I make this function compile?
template<typename _Callable, typename... _Args>
    void captureVariableArgs(_Callable&& __f, _Args&&... __args) {
    takeOnlyVoidFunction([=]() { __f(__args...);});
}

void normalFunction(int a, int b) {
    printf("I am a normal function which takes params (%d,%d)\n", a, b);
}

int main() {
    int a …
Run Code Online (Sandbox Code Playgroud)

c++ lambda gcc

6
推荐指数
1
解决办法
187
查看次数

源代码中gcc的std :: bind将参数复制到数据结构中的哪个位置?

在试图了解std::bind分配记忆的情况时,我看了一下这个答案,这给出了一些直觉,但我想要更详细的理解,所以我去了看源头gcc.

我检查下面的源代码用于std::bind从GCC实现的C++标准库.

  /**
   *  @brief Function template for std::bind.
   *  @ingroup binders
   */
  template<typename _Func, typename... _BoundArgs>
    inline typename
    _Bind_helper<__is_socketlike<_Func>::value, _Func, _BoundArgs...>::type
    bind(_Func&& __f, _BoundArgs&&... __args)
    {
      typedef _Bind_helper<false, _Func, _BoundArgs...> __helper_type;
      typedef typename __helper_type::__maybe_type __maybe_type;
      typedef typename __helper_type::type __result_type;
      return __result_type(__maybe_type::__do_wrap(std::forward<_Func>(__f)),
               std::forward<_BoundArgs>(__args)...);
    }
Run Code Online (Sandbox Code Playgroud)

给定函数F和参数A和B,在哪里可以找到将它们复制到返回的数据结构中的代码,或者是否生成了此编译器?

c++ gcc c++11

6
推荐指数
1
解决办法
266
查看次数

是否可以禁止在一小段C++代码中使用某些寄存器?

我已经看过这个问题,但由于以下原因,这两个解决方案都不适合我.

  1. 我试图阻止c ++代码接触寄存器,而不是汇编,因此clobber列表将无法工作.
  2. 我想在本地执行此操作,而不是全局执行此操作,因此全局显式寄存器变量过于严厉.

是否有可能以某种方式包装一组c ++语句来告诉编译器不使用某些寄存器?

c++ g++

6
推荐指数
1
解决办法
148
查看次数