标签: increment

+ =和= +之间有什么区别?

+ =和= +之间有什么区别?具体来说,在java中,但一般而言.

java syntax increment operators unary-operator

13
推荐指数
4
解决办法
1755
查看次数

递增:x ++ vs x + = 1

我已经读过很多开发人员使用x + = 1而不是x ++来清楚.我知道x ++对于新开发人员来说可能不明确,而且x + = 1总是更清晰,但两者之间的效率是否存在差异?

使用for循环的示例:

for(x = 0; x < 1000; x += 1) VS for(x = 0; x < 1000; x++)

我知道它通常不是那么大的交易,但如果我反复调用一个执行这种循环的函数,它可能会在长期内累加起来.

另一个例子:

while(x < 1000) {
    someArray[x];
    x += 1;
}
Run Code Online (Sandbox Code Playgroud)

VS

while(x < 1000) {
    someArray[x++];
}
Run Code Online (Sandbox Code Playgroud)

可以用x + = 1代替x ++而不会造成任何性能损失吗? 我特别关注第二个例子,因为我使用两行而不是一行.

如何增加数组中的项?会someArray[i]++someArray[i] += 1在大循环中完成时更快吗?

arrays optimization increment

13
推荐指数
2
解决办法
6227
查看次数

复合主键的自动递增

我有一个名为'Workspaces'的表,其中'AreaID'和'SurfaceID'列用作复合主键.AreaID引用另一个名为"Areas"的表,该表只有AreaID作为主键.我现在要做的是使每个新的AreaID上的surfaceID从1重复.现在我正在使用以下代码用于表'Areas'和'Workspaces':

--Table 'Areas'
CREATE TABLE Areas (
AreaID INT IDENTITY(1,1) PRIMARY KEY,
Areaname VARCHAR(60) UNIQUE NOT NULL
)

--Table 'Workspaces'
CREATE TABLE Workspaces (
AreaID INT
CONSTRAINT ck_a_areaid REFERENCES Areas(AreaID)
ON DELETE CASCADE
ON UPDATE NO ACTION,
SurfaceID INT IDENTITY(1,1)
CONSTRAINT ck_surfaceid CHECK (surfaceid > 0 AND surfaceid < 1001),
Description VARCHAR(300) NOT NULL,
CONSTRAINT ck_workspaces PRIMARY KEY (AreaID, SurfaceID)
)
Run Code Online (Sandbox Code Playgroud)

当我使用上面的代码时,我在不同的区域创建新的工作区时会得到这样的结果:

AreaID    SurfaceID
1         1
1         2
1         3
2         4
2         5
3         6
Etc...
Run Code Online (Sandbox Code Playgroud)

但我希望SurfaceID在每个新的areaID上从1重新计算,所以我想要的结果是这样的:

AreaID    SurfaceID …
Run Code Online (Sandbox Code Playgroud)

sql sql-server identity increment

13
推荐指数
2
解决办法
8057
查看次数

MySql INSERT MAX()+ 1的问题

我有一个包含许多用户的表.在该表中,我有一个名为user_id(INT)的列,我想为每个人单独增加.user_id必须从1开始

我准备了一个简单的例子:

Showing all names
+--------------+-----------------------+
| user_id      | name                  |
+--------------+-----------------------+
| 1            | Bob                   |
| 1            | Marry                 |
| 2            | Bob                   |
| 1            | John                  |
| 3            | Bob                   |
| 2            | Marry                 |
+--------------+-----------------------+


Showing only where name = Bob
+--------------+-----------------------+
| user_id      | name                  |
+--------------+-----------------------+
| 1            | Bob                   |
| 2            | Bob                   |
| 3            | Bob                   |
+--------------+-----------------------+
Run Code Online (Sandbox Code Playgroud)

以下查询将执行此操作,但只有在表中已存在"Bob"时才会起作用...

INSERT INTO users(user_id, name) SELECT(SELECT MAX(user_id)+1 from …
Run Code Online (Sandbox Code Playgroud)

mysql sql insert increment max

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

Android:SeekBar增值 - 如何

我的SeekBar(滑块)工作正常但是,当我滑动手指时,它会递增/递减1,但是,我想将增量值更改为常量,例如5.我尝试使用

slider.incrementProgressBy(5);

要做到但是,它不起作用(注意:我把它放在动作监听器内外的不同位置,但它不起作用).

以下是与此相关的两行:

slider.incrementProgressBy(5);
validBpm = slider.getProgress();
Run Code Online (Sandbox Code Playgroud)

这些线目前在SeekBar的触控听众中.

我想这很简单,我忽略了显而易见的 - 任何建议?谢谢...

android slider increment seekbar

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

bash set -e和i = 0;让i ++不同意

仅当变量的先前值为零时,以下带有调试选项'set -e -v'的脚本才会在增量运算符处失败.

#!/bin/bash
set -e -v
i=1; let i++; echo "I am still here"
i=0; let i++; echo "I am still here"

i=0; ((i++)); echo "I am still here"
Run Code Online (Sandbox Code Playgroud)

bash(GNU bash,版本4.0.33(1)-release(x86_64-apple-darwin10),还有GNU bash,版本4.2.4(1)-release(x86_64-unknown-linux-gnu))

有任何想法吗?

bash shell increment set operator-keyword

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

按顺序填充数字数组

我有一个动态生成的数字(例如6),我想通过动态生成的数字填充数字1的数组(在本例中为6):

array(1, 2, 3, 4, 5, 6);
Run Code Online (Sandbox Code Playgroud)

我目前知道这样做的唯一方法是使用for循环,但我想知道是否有更好的方法,类似于array_fill.我查看了array_fill,但看起来它不会占用一个数字并将其增加一定次数.

php arrays increment

12
推荐指数
2
解决办法
6239
查看次数

可以以线程安全的方式安全地增加BigInteger,也许使用AtomicReference,没有锁定?

我们的许多代码都是遗留的,但我们正在转向"大数据"后端,我正在尝试传播新的API调用,鼓励使用最新的Spring库等.我们的一个问题是应用层ID代.由于我不理解的原因,更高的权限需要顺序BigInteger.我会让它们随机重新生成并重新尝试失败的插入但我完成了否决.

磕磕绊绊地说,我处于一个需要增加并在线程中获得BigInteger并以安全和高效的方式执行的位置.我之前从未使用过AtomicReference,但它看起来非常接近完美的应用程序.现在我们有一个同步代码块,这会严重损害我们的性能.

这是正确的方法吗?语法示例?

我应该提一下这个模块的工作方式,它使用存储过程命中数据库以获取要使用的一系列值.一次只有几万个,所以它只发生在20分钟一次.这使得各种服务器不会相互踩踏,但它也增加了必须将BigInteger设置为任意后续值的皱纹.当然,这也需要线程安全.

PS我仍然认为我的随机生成想法比处理所有这些线程的东西更好.一个BigInteger是一个非常大的数字,两次产生相同的几率的几率必须接近零.

java increment biginteger atomicreference

12
推荐指数
2
解决办法
8529
查看次数

为什么Knuth使用这个笨重的减量?

我正在看一些Don Knuth教授的代码,用CWEB编写,转换为C.具体的例子是dlx1.w,可从Knuth的网站获得

在一个阶段,struct nd [cc]的.len值递减,并且以一种笨重的方式完成:

  o,t=nd[cc].len-1;
  o,nd[cc].len=t;
Run Code Online (Sandbox Code Playgroud)

(这是一个特定于Knuth的问题,所以也许你已经知道"o"是一个预处理器宏,用于递增"mems",这是通过访问64位字来衡量的累计工作量.) "t"中剩余的值绝对不会用于其他任何事情.(此处的示例位于dlx1.w的第665行,或者是ctangle之后的dlx1.c的第193行.)

我的问题是:为什么Knuth这样写,而不是

nd[cc].len--;
Run Code Online (Sandbox Code Playgroud)

他确实在其他地方使用过(dlx1.w第551行):

oo,nd[k].len--,nd[k].aux=i-1;
Run Code Online (Sandbox Code Playgroud)

(而"oo"是一个类似的宏,用于递增"mems"两次 - 但这里有一些细微之处,因为.len和.aux存储在相同的64位字中.为S.len和S分配值. aux,通常只计算mems的一个增量.)

我唯一的理论是减量包括两个内存访问:首先查找,然后分配.(这是正确的吗?)这种写作方式提醒了这两个步骤.这对于Knuth来说会非常冗长,但也许这是一种本能的备忘录,而不是说教.

为了它的价值,我在没有找到答案的情况下搜索了CWEB文档.我的问题可能更多地与Knuth的标准实践有关,我正在逐渐采用.我会对这些实践被布局(并且可能被批评)作为一个块的任何资源感兴趣 - 但是现在,让我们关注为什么Knuth以这种方式编写它.

c knuth increment literate-programming decrement

12
推荐指数
1
解决办法
235
查看次数

是否有一种增加可选Int的漂亮方法?

我想增加一个Int?
目前我写的这个:

return index != nil ? index!+1 : nil
Run Code Online (Sandbox Code Playgroud)

有没有更漂亮的方式来写这个?

int increment optional swift

11
推荐指数
2
解决办法
1047
查看次数