我有一段动态编码。我需要检查一个键结构是否在另一个结构中。不检查每个字段的值(如果可能的话)。
从逻辑上讲,应该是这样的:
IF ls_keys IN ls_data_struc.
"do stuff
ENDIF.
是的,我知道代码片段不起作用,但我认为这最好地表明了我的要求。
TYPES: BEGIN OF tys_keys,
matnr TYPE matnr,
vkorg TYPE vkorg,
END OF tys_keys.
TYPES: BEGIN OF tys_data,
matnr TYPE matnr,
如何通过索引将“深度”结构字段的值折叠为数组?
在下面的示例中,我只能在“最顶层”级别上这样做,对于“更深”级别,我可以得到错误:
"Expected one output from a curly brace or dot indexing expression, but there were XXX results."
到目前为止,我发现的唯一解决办法是将操作展开成几个步骤,但是结构越深,这个操作就越丑陋…
clc; clear variables;
% Dummy data
my_struc.points(1).fieldA = 100;
my_struc.points
我有一个场景,我必须通过将节点值乘以节点权重来找到每个子节点的百分比(例如NodeVal * (NodeWeight/100)),然后将所有子节点的计算值相加并将其添加到其父节点,现在在上一级,这个新计算的父节点也具有其权重,该权重将与其值相乘,然后我们将计算该级别的所有子节点的和,并将其添加到上一级的父节点,依此类推。
如果我们只是简单地计算所有子节点的总和,那么在互联网上找到的查询就可以正常工作,但对我的情况没有帮助。
我正在使用下面的查询,但它没有返回准确的结果。
CREATE TABLE TEMP(
Id INT
,ParentNodeId INT
所以我真的无法理解这两个代码段之间的区别。我所知道的关于位字段的是,我在内存中保留了多少位将用于这个int。但是为什么在第二个结构中出现负数呢?
#include<stdio.h>
#include<string.h>
typedef struct {
unsigned int i:1;
unsigned int k:31;
int x;
}Struc1;
typedef struct{
int i:1;
int k:4;
int x;
}Struc2;
int main()
我想做一些类似的事情:
struct mystruct {
char *info;
};
// here is where I'm not sure how to
void do_something(struct mystruct **struc){
int i;
for (i = 0; i < 10; i++){
*struc[i] = (struct mystruct *) malloc (sizeof (struct mystruct));
*struc[i]->info = "foo";
}
我定义了一个结构:
public struct STRUC
{
public int field1;
public int field2;
...
public int fieldn;
}
现在,我有了这个结构List<STRUC> l;的列表,并且我想创建一个数组,该数组从列表l中的每个STRUC获取field2。
可以肯定的是,有了一个简单的for-loop,我就完成了:
int [] arr = new int[l.Count];
for(int i=0; i<l.Count; i++)
{
arr[i] = l[i].fi