标签: assign

一个简单的类赋值函数问题

我写了一堂课

struct opera{
  int a,b;
  int op;
  opera(int a1=0,int b1=0,int op1=-1):a(a1),b(b1),op(op1){}
  opera& operator=(opera& tmp){
    a=tmp.a;
    b=tmp.b;
    op=tmp.op;
}
Run Code Online (Sandbox Code Playgroud)

我想将它分配给这样的数组元素:

ans[a][b]= opera(t.a,t.b,i);
Run Code Online (Sandbox Code Playgroud)

为什么它无法成功编译.

但是这可以工作:

opera tmp=opera(t.a,t.b,i);
ans[a][b]= tmp;
Run Code Online (Sandbox Code Playgroud)

当然,struct opera不需要显式赋值函数,而且

ans[a][b]= opera(t.a,t.b,i);   
Run Code Online (Sandbox Code Playgroud)

可以直接工作.

c++ class assign

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

使用assign动态更改循环中的列表名称?

最好举一个例子:这个代码应该按照我看到的方式生成10个列表,每个列表包含100个元素.

for (i in 1:10){
assign(paste("List", i, sep="."), vector("list", length=100))
  for (j in 1:100){
    assign(paste("List", i, sep=".")[[j]], j+1)
  }
}
Run Code Online (Sandbox Code Playgroud)

但它没有..第一个分配工作正常,创建一个包含100个元素的空列表,但我怎么能填充元素[[j]]呢?谢谢!

loops r list assign

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

为什么我必须在R中使用assign()而不是eval(parse(text =()))

当我想使用循环为几个数据帧分配新值时,就会出现问题.

我知道正确的方法

for (df.name in c('df1', 'df2', 'df3')) {
  assign(df, new.value)
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,为什么我不能这样做

for (df.name in c('df1', 'df2', 'df3')) {
  eval(parse(text=df.name)) <- new.value
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

loops r assign

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

c ++ struct trouble,在struct中访问var

好吧,所以下面我在c ++中有一个结构:

typedef struct tagRECTEx{
 int top;
 int bottom;
 int left;
 int right;
 int width=(this->right-this->left);
 int height;

} RectEx;
Run Code Online (Sandbox Code Playgroud)

现在我想要做的是当我宣布说RextEx WindowSize时; 我指定WindowSize.left = 250和WindowSize.right = 300,我希望它在WindowSize.width将为我减去这个,所以当我去使用cout <<"Window Width:"WindowSize.width; 它会自动减去右边和左边的50.

我不想这样做:

WindowSize.width=(WindowSize.right-WindowSize.left);
Run Code Online (Sandbox Code Playgroud)

我希望通过以下方式为我服务:

... int width =(this-> right-this-> left); ...

这将是唯一的方法是,如果我这样做:

typedef struct tagRECTEx{
 int top;
 int bottom;
 int left=250;
 int right=300;
 int width=(this->right-this->left);
 int height;

} RectEx;
Run Code Online (Sandbox Code Playgroud)

但我不能这样做,因为他们总会改变.

有人可以帮我解决这个问题,因为我一直试图在谷歌网上找到这个过去5个小时.

谢谢

c++ struct initialization assign auto

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

结构中的默认值(char)

我想请求帮助.当我得到这个:

struct MyStruct
{
    unsigned char myBytes[5];
    MyStruct()
    {
        myBytes[0] = 0x89;
        myBytes[1] =  0x50;
        myBytes[2] =  0x4E;
        myBytes[3] =  0x47;
        myBytes[4] =  0x0D;
    }        
};
Run Code Online (Sandbox Code Playgroud)

如何让它变得简单?比如myBytes = {0x89,0x50,0x4E,0x47,0x0D};

c++ struct char assign

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

将MySQL数据库值分配给PHP变量

我有一个包含产品和价格的MySQL数据库表.虽然是html表单,但我在某个php文件中获得了产品名称.对于我要做的这个文件中的操作,我还需要相应的价格.

对我来说,以下内容看起来足够清晰:

$price = mysql_query("SELECT price FROM products WHERE product = '$product'");
Run Code Online (Sandbox Code Playgroud)

但是,它的回声返回:

Resource id #5 
Run Code Online (Sandbox Code Playgroud)

而是像这样的值:

59.95
Run Code Online (Sandbox Code Playgroud)

似乎还有其他选项,如mysqli_fetch_assoc mysqli_fetch_array但我不能让它们输出任何有意义的东西,我不知道使用哪一个.

提前致谢.

php mysql database variables assign

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

为什么在java中不允许赋值和没有括号的布尔运算符

对不起,对于奇怪的问题表述.如果有人知道如何让它变得更好,我会很高兴.以为我们有3个布尔变量:

boolean a = false;
boolean b = false;
boolean c = false;
Run Code Online (Sandbox Code Playgroud)

Java允许编写以下内容:

System.out.println(a=b);
System.out.println(a==b & a==c);
Run Code Online (Sandbox Code Playgroud)

从这两个陈述中我预计以下内容也是合法的.

System.out.println(a=b & a=c);
Run Code Online (Sandbox Code Playgroud)

我的问题是:为什么在第二种情况下不允许,在第一种情况下允许它?在第二种情况下,两个赋值都以布尔值解析,而且对我来说看起来合法.

java variable-assignment boolean-expression assignment-operator assign

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

分配给R中的可变数据帧

我正在尝试将一列数据分配给现有数据框中的新列.数据框在循环中变化,从scores.d到score.e.我想要的输出是得到score.X $ new.col填充vals,其中X被当前的dfname替换.

dfnames <- c("d","e")
scores.d <- data.frame(x = 1, y = 1:10)
scores.e <- data.frame(x = 2, y = 10:20)
vals <- 60:70

for (i in seq_along(dfnames)){
   assign(get(paste0("scores.",dfnames[i]))$new.col,vals)
}

Error in assign(get(paste0("scores.", dfnames[i]))$new.col, vals) : 
  invalid first argument
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误,因为当我需要包含列名时,assign正在寻找一个字符串作为第一个参数.简单地将$ new.col添加到粘贴命令不起作用(假设$不从字符串转换).

我是R的新手,不知道分配东西的注意事项.我想要制作一个数据框列表,然后用vals填充每个数据框,但它没有工作,因为我指定了特定的列,在我的实际数据中,数据框仍然是预先存在的,我只是想添加到它们这里.思考?

编辑*@Jason提供了一个答案,通过将值分配给临时变量,然后将其分配回来.为我的目的工作正常,但我尝试了一个字符串列表代替通过创建名称paste0(),它仍然给了我错误.首先,杰森的工作答案是:

dfnames <- c("d","e")
scores.d <- data.frame(x = 1, y = 1:10)
scores.e <- data.frame(x = 2, y = 11:20)
vals <- 61:70

for (i in dfnames){ #don't need seq_along

    dat<-get(paste0("scores.",i)) #pull up the data …
Run Code Online (Sandbox Code Playgroud)

r dataframe assign

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

如何在matlab中使用线性索引为矢量赋值?

我有一个带NaNs的向量:

v1 = [NaN NaN NaN NaN NaN];
Run Code Online (Sandbox Code Playgroud)

另一个具有不同值的向量:

v2 = [1 4 6 8 9];
Run Code Online (Sandbox Code Playgroud)

和线性指数:

idx = [1 0 4 0 3];
Run Code Online (Sandbox Code Playgroud)

我想根据线性索引将v2中的值分配给v1,结果如下:

v1 = [1 NaN 8 NaN 6];
Run Code Online (Sandbox Code Playgroud)

indexing matlab assign

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

如何在Pandas数据框的所有列中广播和分配一系列值?

我知道这一定很容易,但是我无法弄清楚或找到现有的答案...

说我有这个数据框...

>>> import pandas as pd
>>> import numpy as np
>>> dates = pd.date_range('20130101', periods=6)
>>> df = pd.DataFrame(np.nan, index=dates, columns=list('ABCD'))
>>> df
             A   B   C   D
2013-01-01 NaN NaN NaN NaN
2013-01-02 NaN NaN NaN NaN
2013-01-03 NaN NaN NaN NaN
2013-01-04 NaN NaN NaN NaN
2013-01-05 NaN NaN NaN NaN
2013-01-06 NaN NaN NaN NaN
Run Code Online (Sandbox Code Playgroud)

设置一个系列的值很容易...

>>> df.loc[:, 'A'] = pd.Series([1,2,3,4,5,6], index=dates)
>>> df
            A   B   C   D
2013-01-01  1 NaN NaN NaN
2013-01-02  2 NaN …
Run Code Online (Sandbox Code Playgroud)

python broadcasting dataframe assign pandas

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