我在vim:
foo barba[r]bar
foo
Run Code Online (Sandbox Code Playgroud)
[]表示光标位置
当我使用vaw或viw时,barbarbar是高位的.没关系.
但我想明白 - 为什么?v是视觉模式,a - 我不知道为什么,并且正常接近新词的开头.
我也检查了caw和ciw.第一个删除barbarbar并在foo之后留下光标没有空格,第二个会在foo之后留下空格,两个都进入插入模式...
那为什么它有效呢?在vim帮助中是否有任何反对意见?任何人都可以翻译为vim语言吗?
我从MFC派出一个类CDialogEx:
class MyDialog : public CDialogEx
{
public:
virtual void PostNcDestroy();
…
…
};
Run Code Online (Sandbox Code Playgroud)
我实施PostNcDestroy 如下:
void MyDialog::PostNcDestroy()
{
CDialogEx::PostNcDestroy();
delete *this; // oops, typo
}
Run Code Online (Sandbox Code Playgroud)
我很惊讶地看到这段代码编译(使用VC120或Visual Studio 2013),并且根本不会产生任何警告.任何人都可以告诉为什么会这样吗?
谢谢.
据我所知,inplace_merge与sort完全相同,只是它只在某些情况下有效(当容器已经在两个已排序的部分时).
换句话说,这两者之间是否存在差异:
int first[] = {1,3,5,7};
int second[] = {2,4,6,8};
vector<int> v(8);
vector<int>::iterator it;
copy(first,first+4, v.begin());
copy(second,second+4, v.begin()+4);
inplace_merge(v.begin(), v.begin()+4, v.end())
Run Code Online (Sandbox Code Playgroud)
.
int first[] = {1,3,5,7};
int second[] = {2,4,6,8};
vector<int> v(8);
vector<int>::iterator it;
copy(first,first+4, v.begin());
copy(second,second+4, v.begin()+4);
sort(v.begin(), v.end())
Run Code Online (Sandbox Code Playgroud)
唯一的区别是效率吗?
假设我们有一个包含n个元素的数组(n> 0).
我们想输出这些元素的列表,它们之间有一个分隔符.
解决此问题的常见方法是:
foreach item
(
output item
output separator
)
trim last separator
Run Code Online (Sandbox Code Playgroud)
但是要做到这一点似乎有点混乱.
另一种方法是:
check that there is at least one element
loop
(
output element
next element, or break if no more elements
output separator
)
Run Code Online (Sandbox Code Playgroud)
但我不确定它是否会一直有效.
您是否看到其他聪明的方法,例如在C,C++中?
我注意到使用 Oracle 或 SQLite,这样的查询是完全有效的
\n\nSELECT*FROM(SELECT a,MAX(b)i FROM c GROUP BY\xc2\xa0a)WHERE(a=1)OR(i=2);\nRun Code Online (Sandbox Code Playgroud)\n\nSQL 的 \xe2\x80\x9cfeature\xe2\x80\x9d 是否不需要用空格包围查询的关键字或单词?如果是这样,为什么要这样设计?SQL 被设计为可读的,这似乎是一种混淆形式(尤其MAX(b)i是i是用作别名的令牌)
在Mercurial中,修订号是特定于本地克隆的,它们作为一种工具提供,以比用户更友好的方式指向特定的变更集.
但是,当显示时间线图时,TortoiseHG将按修订号排序.如果某个人不经常提交提交,你将立即使用相邻的修订版号获得所有提交,并且它会弄乱图表的整个点.

这个图表将更具洞察力:有两个开发线,两个作者,一个合并另一个的工作:

因此,是否可以手动重新排序修订号(只要变更集的拓扑顺序仍然与新数字兼容?
谢谢.
试图制作.bat脚本,并需要让一些字符串正常工作.
这是我到目前为止所得到的
@echo off
for /r %%i in (*.csv) do (
set str=%%i
set str=%str:csv=rar%
echo %%i
echo.%str%
)
Run Code Online (Sandbox Code Playgroud)
假设我已经在C:\中运行,并得到5 csv,1.csv,2.csv ... 5.csv
我第一次运行它,得到输出:
C:\1.csv
C:\2.csv
C:\3.csv
C:\4.csv
C:\5.csv
Run Code Online (Sandbox Code Playgroud)
我第二次得到:
C:\1.csv
csv=rar
C:\2.csv
csv=rar
C:\3.csv
csv=rar
C:\4.csv
csv=rar
C:\5.csv
Run Code Online (Sandbox Code Playgroud)
然后我得到所有后续电话:
C:\1.csv
rar=rar
C:\2.csv
rar=rar
C:\3.csv
rar=rar
C:\4.csv
rar=rar
C:\5.csv
Run Code Online (Sandbox Code Playgroud)
当我期待得到的是直接的:
C:\1.csv
C:\1.rar
C:\2.csv
C:\2.rar
C:\3.csv
C:\3.rar
C:\4.csv
C:\4.rar
C:\5.csv
C:\5.rar
Run Code Online (Sandbox Code Playgroud)
所以我删除了替换:
@echo off
for /r %%i in (*.csv) do (
echo %%i
set str=%%i
echo.%str%
)
Run Code Online (Sandbox Code Playgroud)
第一次运行:
C:\1.csv
C:\2.csv
C:\3.csv …Run Code Online (Sandbox Code Playgroud) 亲自尝试一下:
创建一个XLS文件,在Excel中打开它.
打开sysinternals Process Monitor,观察在资源管理器中复制XLS文件时发生的情况(只需点击ctrl-c ctrl-v).
::CreateProcess连续两次打电话.第一次调用请求读取权限,并拒绝访问.第二次调用要求读取加写入加删除和传递.
这是正常的吗?
我使用SQL*Plus使用以下命令行:
sqlplus user/pw@TNS @test.sql foo
Run Code Online (Sandbox Code Playgroud)
内容test.sql如下:
SET VERIFY ON
DEFINE argone='&&1'
SELECT '&argone' FROM dual;
EXIT SQL.sqlcode
Run Code Online (Sandbox Code Playgroud)
结果:
C:\Program Files\Oracle Client\whatever\sqlplus.exe,然后&&1计算到Files\Oracle.C:\Oracle\Client\10.2.xx\bin,然后&&1计算到foo.有没有人遇到这个问题并有办法规避它?
由于某种原因,我正在迭代一个类的元素,std::set并希望稍微修改键,知道订单将保持不变.
迭代器std::set是const_iterators因为如果修改了密钥,则可能导致订单错误,从而导致设置损坏.但是我确信我的操作不会改变集合中元素的顺序.
目前,这是我的解决方案:
class Foo
{
public:
Foo(int a, int b): a_(a),b_(b) {}
~Foo(){}
bool operator < (const Foo& o) const { return this.a_ < o.a_ ; }
void incrementB() const { ++b_; } // <-- the problem: it is not const!
private:
const int a_;
mutable int b_; // <-- I would like to avoid this
}
void f()
{
std::set<Foo> s;
// loop and insert many (distinct on a_) Foo elements;
std::for_each(s.begin(), …Run Code Online (Sandbox Code Playgroud) c++ ×3
algorithm ×1
batch-file ×1
cmd ×1
compilation ×1
file-io ×1
mercurial ×1
mfc ×1
mutable ×1
optimization ×1
oracle ×1
process ×1
set ×1
sql ×1
sqlplus ×1
stl ×1
tortoisehg ×1
vim ×1
whitespace ×1
winapi ×1
windows ×1