小编bja*_*fly的帖子

删除 vim 中的 netrw s-up 和 s-down 映射

我的 .vimrc 文件中有以下映射,用于在窗口之间移动,但是当在 netrw 插件的浏览窗口 :e 中时,下移键将产生一个警告窗口,而不是尊重我的映射。我假设这个映射必须被硬编码到插件本身中。如何删除插件中的上移和上移映射。

nnoremap <silent> <S-Up> :wincmd k<CR>     
nnoremap <silent> <S-Down> :wincmd j<CR>   
Run Code Online (Sandbox Code Playgroud)

尝试上移或下移时显示的窗口如下所示,它显示在新的拆分中,这非常烦人:

**warning** (netrw) using Nexplore or <s-down> improperly; see help for netrw-starstar
Run Code Online (Sandbox Code Playgroud)

因此,我的问题是如何在 netrw 插件中关闭此行为,以便它尊重上面显示的映射。

vim

4
推荐指数
1
解决办法
1160
查看次数

在c ++向量中push_back与operator []赋值

有人可以详细向我解释为什么vectorY的下面代码会进行分配,但VecY的大小为零?此外,开始和结束迭代器都停留在第一个节点上.似乎保留仅适用于回退,并且如果您希望向量的迭代器和大小按预期工作,则需要构造具有大小的向量.我假设push_back正在进行某种类型的分配,在这种情况下直接分配不是吗?我正在寻找解释这一点的细节,所以我可以确保我理解保留和push_back正在发生什么,而不是使用size元素进行构建,然后像在VecX示例中那样进行赋值.

#include <iostream>
#include <vector>

    int main ( int argc, char *argv[])
    {
      std::vector<int> vecX(2);
      vecX[0] = 1;
      vecX[1] = 2;
      std::cout << " VecX0 Item: " << vecX[0] << std::endl;
      std::cout << " VecX1 Item: " << vecX[1] << std::endl;
      std::cout << " VectorX Size: " << vecX.size() << std::endl;

      std::vector<int> vecY;
      vecY.reserve(2);
      vecY[0] = 1;
      vecY[1] = 2;
      std::cout << " VecY0 Item: " << vecY[0] << std::endl;
      std::cout << " VecY1 Item: " << vecY[1] << std::endl; …
Run Code Online (Sandbox Code Playgroud)

c++ stl vector push-back

3
推荐指数
1
解决办法
1956
查看次数

尝试在 gdb 7.5 中获取 vim 命令击键

嗨,我使用的是 gdb 7.5 版。有人能告诉我如何让 vim 按键在 gdb 中工作吗?向上和向下箭头键适用于历史记录,但我希望 k 和 j 的工作方式与我在 bash shell 中的工作方式类似,并且在 shell 中将内容设置为 set -o vi 然后我的 vim 按键适用于命令历史记录。我曾经在以前的 linux 实例中使用 gdb 进行过设置。当前运行 ubuntu 13.04。

c++ debugging vim gdb c++11

3
推荐指数
1
解决办法
909
查看次数

为什么T扩展了Comparable <?超级T>包括T?含义包括Comparable <T>?

class BinarySearch<T extends Comparable<? super T> >
Run Code Online (Sandbox Code Playgroud)

为什么T extends Comparable <? super T>包含T,意味着包括Comparable<T>而不仅仅是超类层次结构?我对super关键字感到困惑,因为我认为super只包含超类项.我是java的新手,在Java书中它有以下示例:

这是关于一个类中的方法,该类试图使用Java.awt.Component限制层次结构的上限和下限,因此该类扩展了Container

class CustomComponent<T extends Container>
Run Code Online (Sandbox Code Playgroud)

在课堂上他们有以下方法

void describeComponent<CustomComponent<? super JPasswordField> ref)
Run Code Online (Sandbox Code Playgroud)

然后继续说

请注意,JPasswordField是JTextField的超类,它本身在允许的对象列表中被省略.

java super

3
推荐指数
1
解决办法
6052
查看次数

如何为参数包的第一个参数创建typedef

如何访问参数包中的各个项目?

鉴于以下内容:

template<typename T>
struct X {};

template<class R, class... Args>
struct X<R (Args...)>
{
  // how can I create a typedef for the first parameter
  // basically I want to do something like if arg1 exists typedef it
  // pseduo code below

  if (Args[0])
   typedef typename Args[0] Parameter1
}
Run Code Online (Sandbox Code Playgroud)

否则我可能不得不做这样的事情,但希望保持通用

template<class R, class... Args>
struct X<R (Arg1, Args...)>
{

}
Run Code Online (Sandbox Code Playgroud)

c++ templates variadic-templates c++11

3
推荐指数
2
解决办法
274
查看次数

c ++ 11下面的lambda函数的范围是什么

关于lambda函数的快速问题.我看到当使用gcc编译器时,如果没有捕获,则会对lambda的operator()函数的函数指针进行隐式转换.结果看下面这个淡化的例子我应该期望这个函数的生命时间可用于回调?lambda函数的定义范围是什么?本地范围,包装范围,全球范围?在这种情况下退出函数后调用lambda有什么问题吗?我根本不想在这里使用std :: function,所以请不要使用std :: function返回值作为解决方案.我的问题只是了解该功能的范围(没有捕获),以及它是否可用于程序的生命周期.

#include <iostream>
typedef int(*fPtrT)(int,int);     

 fPtrT fx() { 
    return static_cast<fPtrT>([](int i, int j){return i+j;});
 }

int main()
{
    std::cout << fx()(5,2) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

c++ lambda c++11

3
推荐指数
1
解决办法
747
查看次数

当使用*键搜索时,如何在vim中使冒号成为单词边界

当选择*按键或选择Shift + 8class::method整个事物这样的单词进行搜索时.有没有办法配置vim来说明我的光标是否在word方法上,我点击*键只选择冒号,所以它看起来像class :: method

vim

3
推荐指数
1
解决办法
506
查看次数

使用模板推导传递数组时的可变长度数组错误

嗨,编译以下我收到一个错误.我不确定为什么会这样,如果我将这些更改为const值,如[10] [20]它可以工作,但似乎不喜欢变量,即使这是一个声明,所以它不会改变维度.我很困惑,为什么这是错误发生请帮助.见下面的代码:

#include <iostream>

template <size_t X, size_t Y>
void fun (int (&array)[X][Y])
{
    std::cout << " do something fun " << std::endl;
}

int main ( int argc, char *argv[] )
{
  size_t row (10);
  size_t col (20);

  int data1[10][20];
  fun ( data1 );// compiles

  int data2[row][col];
  fun ( data2 );// fails

  return 0;
}




g++ -I/usr/include -I/usr/local/include -std=c++11 -pthread -O3 -Wall -c main.cpp -o main.o
main.cpp: In function ‘int main(int, char**)’:
main.cpp:18:15: error: no matching function for call …
Run Code Online (Sandbox Code Playgroud)

c++ templates c++11

2
推荐指数
1
解决办法
1039
查看次数

std :: partition快速排序实现

我认为下面的实现工作但显然没有.关于使用这种快速排序实现有什么问题的任何想法std::partition?我有一个使用nth_element版本的版本,其工作方式与此类似且非常简单.

template <typename It>
void quickSort (const It& lowerIt, const It& upperIt)
{
  auto d = upperIt  - lowerIt ;
  if ( d < 2 )
   return;

  auto midIt = lowerIt + d / 2;

  using T = typename std::iterator_traits<It>::value_type;

  T midValue = *midIt;

  auto pIt = std::partition ( lowerIt, upperIt, [midValue](T i) { return i < midValue; } );

  quickSort( lowerIt, pIt );
  quickSort( pIt + 1, upperIt );
}
Run Code Online (Sandbox Code Playgroud)

使用分区:

之前:

83,86,77,15,93,35,86,92,49,21,

后:

21,15,77,35,49,83,86,92,86,93,

c++ quicksort c++11

2
推荐指数
1
解决办法
2654
查看次数

将 std::partition 与快速排序一起使用

下面使用分区的 quickSort 方法有什么问题?第 N 个元素似乎工作正常,但我认为分区也可以工作。我看到了一个有 2 个分区调用的示例,但我不应该只需要一个吗?

#include <iostream>
#include <algorithm>
#include <iterator>

template <typename It>
void quickSortWorks (const It& lowerIt, const It& upperIt) 
{
  auto d = upperIt - lowerIt ;
  if ( d < 2 )
   return;

  auto midIt = lowerIt + d / 2;

  std::nth_element ( lowerIt, midIt, upperIt);

  quickSortWorks( lowerIt, midIt );
  quickSortWorks( midIt+1, upperIt );
}


template <typename It>
void quickSort (const It& lowerIt, const It& upperIt) 
{
  auto d = upperIt - lowerIt ; …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm

1
推荐指数
2
解决办法
2314
查看次数

Algo用于在log(N)时间内查找连续项目

有没有人对此有一个简明的答案?我在职业杯上看到了这个.http://www.careercup.com/question?id=4860021380743168

给定整数的二进制表示,例如15为1111,找到最大的最长连续序列0.扭曲是需要在log N中完成的.

例如.10000101的答案应该是4,因为有4个连续的零.

如果你有一个c ++的答案,那对我来说是最好的

c++ algorithm

0
推荐指数
1
解决办法
189
查看次数

为什么a和b在以下代码中共享相同的地址?

为什么静态断言在这种情况下?由于64位地址线和char是单字节,它们是否在同一地址?

  #include <type_traits>

    int main()
    {
      char a='a';
      char b='b';

      static_assert ( &a == &b, " ERROR: Same addr"  ) ;
    }
    main.cpp: In function ‘int main()’:
    main.cpp:9:3: error: static assertion failed:  ERROR: Same addr
Run Code Online (Sandbox Code Playgroud)

c c++ char

-2
推荐指数
1
解决办法
124
查看次数

标签 统计

c++ ×9

c++11 ×5

vim ×3

algorithm ×2

templates ×2

c ×1

char ×1

debugging ×1

gdb ×1

java ×1

lambda ×1

push-back ×1

quicksort ×1

stl ×1

super ×1

variadic-templates ×1

vector ×1