小编180*_*ION的帖子

如何删除git历史记录中的特定修订版?

假设您的git历史记录如下所示:

1 2 3 4 5

1-5是单独的修订.你需要删除3,同时仍然保持1,2,4和5.如何做到这一点?

在删除之后有数百个修订版时,是否有一种有效的方法?

git

211
推荐指数
6
解决办法
10万
查看次数

我应该在C++中使用异常说明符吗?

在C++中,您可以通过使用异常说明符指定函数可能会也可能不会抛出异常.例如:

void foo() throw(); // guaranteed not to throw an exception
void bar() throw(int); // may throw an exception of type int
void baz() throw(...); // may throw an exception of some unspecified type
Run Code Online (Sandbox Code Playgroud)

由于以下因素,我对实际使用它们表示怀疑:

  1. 编译器并没有以任何严格的方式真正强制执行异常说明符,因此效益并不高.理想情况下,您希望得到编译错误.
  2. 如果函数违反了异常说明符,我认为标准行为是终止程序.
  3. 在VS.Net中,它将throw(X)视为throw(...),因此遵守标准并不强.

你认为应该使用异常说明符吗?
请回答"是"或"否"并提供一些理由来证明您的答案.

c++ exception function throw specifier

119
推荐指数
5
解决办法
3万
查看次数

如何让git忽略大小写的变化?

我不太确定这里发生了什么,但有时我的存储库中的特定文件会改变它的名称.例如,:

之前: File.h

后: file.h

我真的不在乎为什么会发生这种情况,但这会导致git认为它是一个新文件,然后我必须重新更改文件名.你能不能让git忽略大小写的变化?

[编辑] 我怀疑它是Visual Studio对该特定文件做了一些奇怪的事情,因为它似乎最常发生在我打开并在更改后保存它.我没有办法修复VS中的错误,但我希望git应该更有能力.

windows git

93
推荐指数
5
解决办法
7万
查看次数

在Git中有选择地还原或签出对文件的更改?

是否有一个命令允许您部分撤消对工作目录中文件(或多个文件)的更改?

假设您已经编辑了很多文件但是您意识到要将某些更改撤消回已提交状态,而不是其他更改.

我正在设想一个git checkout类似的选项git add -p,即它通过hunk传递文件块并询问你是否要保留它.

git

84
推荐指数
3
解决办法
3万
查看次数

python是否支持多处理器/多核编程?

多处理器编程和多核编程有什么区别?最好在python中展示如何编写用于多道程序设计和多核编程的小程序的例子

python multicore

69
推荐指数
4
解决办法
7万
查看次数

dllexport和dllimport有什么区别?

我只想简单,简洁地解释这两者之间的区别.MSDN在这里没有详细介绍.

import dll export visual-c++

53
推荐指数
4
解决办法
3万
查看次数

我应该默认使用内部或公共可见性吗?

我是一个非常新的C#和.Net开发人员.我最近使用C#创建了一个MMC管理单元,并对它的执行起来感到满意,特别是在听到组织中的其他一些开发人员讲述C++中的难度之后.

我几乎完成了整个项目,并将"public"关键字的每个实例都设置为"internal",除非运行时需要运行snapin.如果您通常将课程和方法公开或内部化,您对此有何感受?

.net c# public internal

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

"const class"是什么意思?

在找到并替换重构之后,我最终得到了这个gem:

const class A
{
};
Run Code Online (Sandbox Code Playgroud)

"const class"是什么意思?好像编译好了.

c++ const class

34
推荐指数
4
解决办法
2万
查看次数

如何在STL priority_queue中进行有效的优先级更新?

我有一个对象的priority_queue:

typedef priority_queue<Object> Queue;
Queue queue;
Run Code Online (Sandbox Code Playgroud)

有时,其中一个对象的优先级可能会发生变化 - 我需要能够以有效的方式更新队列中该对象的优先级.目前我使用的方法虽然有效,但看起来效率低下:

Queue newQueue;
while (!queue.empty())
{
  Object obj=queue.top();
  queue.pop();

  if (priorityHasChanged(obj))
    newQueue.push_back(Object(new_priority));
  else
    newQueue.push_back(obj);
}

newQueue.swap(queue); // this only works because I actually subclassed the priority_queue
                 // class and exposed a swap method that swaps in the container
Run Code Online (Sandbox Code Playgroud)

我是这样实现的,因为我当时有点匆忙,这是我能做的最快的事情,我可以确定它能正常工作.不过必须有比这更好的方法.真的我想要的是一种方式:

  • 使用更改的优先级提取实例,并插入具有新优先级值的新实例
  • 使用更改的优先级更新实例,然后更新队列以便正确排序

做这个的最好方式是什么?

c++ stl priority-queue

32
推荐指数
5
解决办法
3万
查看次数

如何过滤std :: map中的项目?

我大致有以下代码.这可以更好或更有效吗?也许用std::remove_if?您可以在遍历地图时从地图中删除项目吗?我们可以避免使用临时地图吗?

typedef std::map<Action, What> Actions;
static Actions _actions;

bool expired(const Actions::value_type &action)
{
  return <something>;
}

void bar(const Actions::value_type &action)
{
  // do some stuff
}

void foo()
{
  // loop the actions finding expired items
  Actions actions;
  BOOST_FOREACH(Actions::value_type &action, _actions)
  {
    if (expired(action))
      bar(action);
    else
      actions[action.first]=action.second;
    }
  }
  actions.swap(_actions);
}
Run Code Online (Sandbox Code Playgroud)

c++ boost stl

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