标签: variable-assignment

如何将stl向量中的元素范围设置为特定值?

我有一个布尔值的矢量.我需要将其元素从第n个设置为第m个到第m个true.有没有使用循环这样做的优雅方法?

编辑:坦克给所有指出使用问题的人vector<bool>.但是,我正在寻找一种更通用的解决方案,就像jalf给出的解决方案一样.

c++ stl vector variable-assignment

14
推荐指数
2
解决办法
8809
查看次数

MYSQL使用变量更新多个列

我使用此查询将所有值插入此数据库:

INSERT INTO products ($fields) VALUES ($values)
Run Code Online (Sandbox Code Playgroud)

但是,我尝试使用相同的格式进行更新:

UPDATE products SET ($fields) VALUES ($values) WHERE sku = '$checksku'
Run Code Online (Sandbox Code Playgroud)

...而且我遇到了语法错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('product,make,model,' at line 1
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚.非常感谢任何帮助.谢谢.

mysql variables variable-assignment multiple-columns

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

Python赋值和使用elif的函数测试

我见过类似的问题,但不完全一样.我有一个表达

if foo == ....
  return -1
elif myFunction(bar) != -1:
  return myFunction(bar)
elif ...
Run Code Online (Sandbox Code Playgroud)

我不想计算myFunction(bar)两次.如果它只是一个if,我可以做到

temp = myFunction(bar)
if temp != -1
  return temp
Run Code Online (Sandbox Code Playgroud)

然而elif,temp如果我们要遵循初始条件,那么使用a 会导致不必要的计算if.

我可以看到使用的解决方案

if ...
else
  temp = myFunction(bar)
  if temp != -1:
    return temp
  elif ...
Run Code Online (Sandbox Code Playgroud)

但现在开始变得更加丑陋.有没有更好的方法来实现这一目标?

python if-statement variable-assignment

14
推荐指数
2
解决办法
2384
查看次数

在 Python 中同时分配索引不同的列表元素

>>arr = [4, 2, 1, 3]
>>arr[0], arr[arr[0]-1] = arr[arr[0]-1], arr[0]
>>arr
Run Code Online (Sandbox Code Playgroud)

我期待的结果 >>[3, 2, 1, 4]

结果我得到 >>[3, 2, 4, 3]

基本上我试图交换 #4 和 #3(在我的实际问题中,索引不会是 0,而是一个迭代器 "i" 。所以我不能只做 arr[0], arr[3] = arr[ 3], arr[0]) 我认为我对同时分配的理解相当好。显然我错了。我不明白为什么赋值左侧的 arr[arr[0]-1] 计算的是 arr[2] 而不是 arr[3]。如果分配同时发生(从右侧评估),

arr[0](在左侧第二个元素的索引内​​)仍应为“4”

arr[0] -1(左侧第二个元素的索引)因此应为“3”

python variable-assignment

14
推荐指数
1
解决办法
712
查看次数

究竟什么是C++定义,声明和赋值?

我倾向于使用单词define,declare和assign可互换,但这似乎会导致一些人的冒犯.这是否合理?我是否应该仅在第一次使用"声明"一词时分配给变量?或者还有更多呢?

c++ terminology variable-assignment declare

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

在C中,如果B是易失性的,那么表达式(void)(B = 1)应该读取B.

我在几个嵌入式平台的编译器上工作.用户最近抱怨我们的一个编译器出现以下行为.给出这样的代码:

extern volatile int MY_REGISTER;

void Test(void)
{
    (void) (MY_REGISTER = 1);
}
Run Code Online (Sandbox Code Playgroud)

编译器生成它(在伪汇编程序中):

Test:
    move regA, 1
    store regA, MY_REGISTER
    load regB, MY_REGISER
Run Code Online (Sandbox Code Playgroud)

也就是说,它不仅写入MY_REGISTER,而且之后将其读回.由于性能原因,额外负载使他心烦意乱.我解释说这是因为根据标准"赋值表达式在赋值后具有左操作数的值,[...]".

奇怪的是,删除cast-to-void会改变行为:负载消失.用户很高兴,但我只是感到困惑.

所以我也在几个版本的GCC(3.3和4.4)中检查了这一点.在那里,编译器永远不会生成负载,即使明确使用该值,例如

int TestTwo(void)
{
    return (MY_REGISTER = 1);
}
Run Code Online (Sandbox Code Playgroud)

变成

TestTwo:
    move regA, 1
    store regA, MY_REGISTER
    move returnValue, 1
    return
Run Code Online (Sandbox Code Playgroud)

有没有人对该标准的正确解释有何看法?回读是否应该发生?如果使用该值或将其转换为void,则添加只读是正确还是有用?

c volatile c99 variable-assignment

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

Scala中x = y = 1?

在阅读Scala for the Impatient一书时,我遇到了这个问题:

提出一种情况,其中赋值x = y = 1在Scala中有效.(提示:为x选择合适的类型.)

我不确定作者究竟是什么意思.赋值不会返回一个值,所以var x = y = 1应该返回Unit()作为x的值.有人能指出我在这里可能会缺少什么吗?

谢谢

scala return-type return-value variable-assignment

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

"Y没有在C++中命名类型"错误

我不知道该搜索什么来找到解释,所以我在问.
我有这个代码报告错误:

struct Settings{
    int width;
    int height;
} settings;

settings.width = 800; // 'settings' does not name a type error
settings.height = 600; // 'settings' does not name a type error

int main(){
    cout << settings.width << " " << settings.height << endl;
Run Code Online (Sandbox Code Playgroud)

但如果我将值赋值放在main中,它的工作原理如下:

struct Settings{
    int width;
    int height;
} settings;

main () {
    settings.width = 800; // no error
    settings.height = 600; // no error
Run Code Online (Sandbox Code Playgroud)

你能解释一下为什么吗?

编辑:
关于Ralph Tandetzky的回答,这是我的完整结构代码.你能告诉我如何像你的片段结构那样分配值吗?

struct Settings{
    struct Dimensions{
        int width;
        int height; …
Run Code Online (Sandbox Code Playgroud)

c++ struct class variable-assignment

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

R:使用空方括号轻松分配?X [] < -

在查看最近在SO上发布的答案时,我注意到了一个不熟悉的任务说明.而不是通常的形式 myVar<- myValue,它使用了myVar[]<- myValue.就个人而言,我从未见过这样的作业,但它有一个非常有用的效果 - 它将指定的数据myValue重新塑造为myVar的形状.

我想在我的代码中使用它.然而,文档"<-"似乎是沉默的.

这是一个完善的功能,可以依靠它在所有情况下工作吗?

另外,我的猜测是它可能是函数调用堆栈的副作用,即调用<-[按顺序,但我无法弄清楚如何.有人可以对此有所了解吗?

这是一个例子 -

# A dataframe
df1<- data.frame(a=1:4, b=11:14)

# simple assignment assigns to class of RHS
df1<- c(21:24,31:34)
df1 
#[1] 21 22 23 24 31 32 33 34
class(df1)
#[1] "integer"

#assignment with [] casts to class of LHS 
df1<- data.frame(a=1:4, b=11:14)
df1[]<- c(21:24,31:34)
df1

#    a  b
# 1 21 31
# 2 22 32
# 3 23 33
# 4 …
Run Code Online (Sandbox Code Playgroud)

syntax casting r variable-assignment reshape

13
推荐指数
1
解决办法
649
查看次数

while(i!= i){} - 是否可能有一个始终为真的赋值

最近我接受了一家软件公司的采访,在技术能力回合中询问了以下问题:

以这样的方式声明我,条件总是为真:

while(i != i) {
}
Run Code Online (Sandbox Code Playgroud)

在Java中技术上是否可以分配这种东西?

java variables variable-assignment while-loop

13
推荐指数
1
解决办法
1162
查看次数