标签: structure

.net中的结构构造函数:任何开销?

关于使用结构构造函数; 这两个代码块的性能相同吗?

使用构造函数:

Dim pt As Point
For i As Integer = 1 To 1000
    pt = New Point(i, i)
Next

没有构造函数:

Dim pt As Point
For i As Integer = 1 To 1000
    pt.X = i
    pt.Y = i
Next

第一个是更短的,特别是如果构造函数有更多的参数,但在循环中使用它是明智的(让游戏循环每秒发射60次)?或者这两个编译成相同的机器代码?

.net structure

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

深层复制结构到POSIX共享内存

我有两个结构:

struct bets{
   int bets[36];
   int last_bet;
}bets
struct board{
   int type;
   bets *bet;
 }board
Run Code Online (Sandbox Code Playgroud)

我创造了一大块鲥鱼记忆sizeof(board).所以,我在共享内存中得到了一个指向Board的指针(以免称之为ptr).我创建了一个新的boardbets结构 board *b,bets * bts....添加board->bet = bts.现在,我将"b"复制到了ptr memcpy(ptr, bts, sizeof(board)).我可以访问ptr->type.但是当我尝试访问时 ptr->bet->last_bet,我遇到了分段错误错误.

我也试过像这样复制:

board *b;
memcpy(ptr, b, sizeof(board));
bets *bts;
memcpy(ptr->bet, bts, sizeof(bets)).
Run Code Online (Sandbox Code Playgroud)

仍然得到分段错误错误.

如何将两个struct one复制到另一个内部并仍然可以访问嵌套的?

c memory shared nested structure

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

导致此错误的原因是:左侧所需的结构.要么 .*?

typedef struct tsk{
    int x;
    int n;
}TSK;

TSK trd[MAX];
 main(){
    while(life!=0){
 randomize();
     for(i=0;i<MAX;i++){
     trd[i].n=rand()%40+10;
         if(trd[i].n<10||trd[i].n>45)
         trd[i].n=rand()%40+10;
         trd[i].x=25;
     }
     for(m=0;m<MAX;m++){
     gotoxy(8,m);printf("%c%c",23,23);
     gotoxy(7,m);printf("%c",17);
     gotoxy(46,m);printf("%c%c",23,23);
     gotoxy(48,m);printf("%c",16);
     }
 for(j=0;j<MAX;j++){
 if(life==0)
     break;
 gotoxy(1,1);
 insline();
 gotoxy(trd[j].n,1);
 printf("%c",3);
 trd[j].x--;
 gotoxy(ply,25);
 printf("%c",1);
 gotoxy(1,26);
 delline();
 score++;
 life=hit(trd,life,ply);
 gotoxy(57,25);
 printf("SCORE: %0.0f  LIFE: %d",score,life);
 gotoxy(8,1);printf("%c%c",23,23);
    gotoxy(46,1);printf("%c%c",23,23);
    gotoxy(7,1);printf("%c",17);
    gotoxy(48,1);printf("%c",16);
    gotoxy(4,1);printf("%c",label[j]);
    delay(200);

        if(kbhit()){
            key=getch();
            key=toupper(key);
            if(key==27)
                life=0;
            if(key=='L')
            ply++;
                if(ply==46)
                ply--;
            else if(key=='K')
            ply--;
                if(ply==9)
                ply++;
            }
   }
  }
}

int hit(int trd[],int life, int ply){
int i;
    for(i=0;i<MAX;i++){
        if((trd[i].n==ply)&&(trd[i].x==0))
            life-=1;
        } …
Run Code Online (Sandbox Code Playgroud)

c structure

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

在后台线程上执行Core Data保存?

我有一个按钮,它将Core Data SQLite中的一个选定条目标记为"收藏夹",这意味着我只是BOOL将该索引从off更改为on.

目前,当我这样做,我叫save上了managedObjectContext,这也许需要500毫秒,更也许有点,根据仪器.

我有一些代码同时执行,触发了一个漂亮的小粒子爆炸("万岁,最喜欢的!"),但我遇到的问题是爆炸延迟到save完成之后.

我不知道为什么,因为触发爆炸的代码是在save调用之前.我是一个相对较新的程序员,所以也许我错过了一些东西,但是在这样的情况下不会逐行执行代码执行,因为爆炸会触发,然后保存将在它发生时发生?这里的委托调用也可能需要一些时间,但同样的问题适用,为什么它会在这些代码行之后重要?

编辑:我是否正确地说,在下一行代码出现粒子之前,主线程被阻塞,这意味着UI无法自行更新?

这是我的代码:

// Particle animation
LikeExplosion *likeExplosionView = [[LikeExplosion alloc] initWithFrame: CGRectMake(0, 0, 320, 400)];
[likeExplosionView setUserInteractionEnabled: NO];
[self.view addSubview: likeExplosionView];
[self.view bringSubviewToFront: likeExplosionView];
[likeExplosionView decayOverTime: 1.1];

// Delegate call to reload tableview elsewhere
[self.delegate detailViewControllerDidLikeLine];

// Update current object
[_selectedLine setIsLiked: [NSNumber numberWithBool: YES]];
[_selectedLine setIsDisliked: [NSNumber numberWithBool: NO]];

// Update context
NSError *error;
if (![[[CDManager sharedManager] managedObjectContext] save:&error]) NSLog(@"Saving changes failed: …
Run Code Online (Sandbox Code Playgroud)

structure core-data objective-c nsmanagedobjectcontext ios

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

如何在golang中创建一个自动调用的结构方法?

我必须在golang中创建类似于2级继承的替代品,即在包中,我有一个结构(A),它由另一个包中的另一个结构(B)继承(嵌入为匿名字段),其目标是由" "包使用.

现在,我为"B"(BPlease)创建了一个初始化方法,该方法返回B的对象(比如B_obj).我可以在程序开始时从我的"main"包中调用这个初始化程序(BPlease).

"B"(比如,HelloB())的方法之一,在执行期间使用"B"对象调用"A"(例如,HelloA())方法.

但我真正想要的是,类似于"A"的构造函数,可以初始化其字段(最好是在B_obj在包"main"中创建),然后"B"调用任何"A"方法.

怎么做到这一点?

我尝试为"A" 创建一个初始化程序(APlease)并调用它(BPlease)来获取"A"(A_obj)的对象.但我发现这个对象没用,因为我无法在"B"(HelloB())方法中使用它来调用"A"方法(HelloA()).如果有人能告诉我如何利用这个对象(A_obj)会很棒.

这里有一些代码来澄清我的查询:

    package A
    type A struct { whatever }
    func (A_obj *A) HelloA(){performs some operation...}           // a method of A()
    func APlease() A {
          return A{initialize A fields}
        }
-------------------------------------------------------------------------------
    package B
    type B struct {
      A
      B fields
    }

    func BPlease() B {
      return B{
      A_obj := APlease()                     // useless to me.... …
Run Code Online (Sandbox Code Playgroud)

oop constructor structure initialization go

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

如何声明结构类型的向量?

我的代码有问题.在这里,我想编写一个程序,它将从文件中获取输入并将其存储在结构向量中,但是当我声明结构类型向量时,它显示错误.

#include<iostream>
#include<fstream>
#include<vector>

using namespace std;

struct input
{
    char process[10];
    int burst_time;
    int arrival_time;
}input;

int main()
{
    ifstream myfile;
    vector<input> store;// problem with initializing vector

    myfile.open("input.txt",ios::in);

    if(myfile.is_open())
    {
        while(!myfile.eof())
        {
            myfile>>input.process;
            myfile>>input.burst_time;
            myfile>>input.arrival_time;

            store.push_back(input);//showing problem in this line also
        }
    }

    myfile.close();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ structure vector

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

函数指针C中的结构

typedef struct Item{

  int i;
  int j;    
  void (*fooprint)(item*);

}item;

void fooprint(item *it){
  printf("%d\n",it.i);
}


int main(){

  item myitem;
  myitem.i=10;
  myitem.j=20;
  myitem.fooprint = fooprint;

  myitem.fooprint(&myitem);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

此代码在void(footprint)(item)中给出错误."错误是预期的')'''''令牌"之前.我错过了什么吗?当我这样做而不使用指针结构是有效的.示例:void(*footprint)(item)

c pointers structure function

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

在Scheme中定义结构.希望得到帮助

我对Scheme很新,我正在使用DrRacket,我希望得到一些急需的帮助.

我正在定义结构,我在某种程度上理解,但我似乎遇到了障碍.

我需要做到这一点,因此"EmployeeRaise"函数适用于所有检查期望,而不会使它只能用于一个特定的检查期望.

主要问题是在定义中,更具体地说,在粗体部分,

(+(员工 - 小时率em)(*(员工 - 小时率em)0.1)))

我似乎无法弄清楚它如何确定每个人的员工每小时费率,而不是那个用"em"定义的员工.

我认为将所有三名员工都定义为"em",但不会让我这样做.

我希望有人可以帮助我.

这是我的代码:

(define-struct employee (Name Hourly-rate overtime?))

;;Signature: EmployeeRaise: string -> number
;;Purpose: Consumes an employee and returns an employee with the hourly rate increased by 10%.
;;Tests
(check-expect (EmployeeRaise "Ben") 13.2)
(check-expect (EmployeeRaise "Joe") 16.5)
(check-expect (EmployeeRaise "Debbie") 22)
;; Define
(define (EmployeeRaise employee-Name)
  (+ (employee-Hourly-rate em) (* (employee-Hourly-rate em) 0.1)))
Run Code Online (Sandbox Code Playgroud)

scheme structure racket

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

结构和结构指针之间混淆

我想知道两者之间的区别

struct file_operations {

} a;
Run Code Online (Sandbox Code Playgroud)

struct file_operations {

} *a;
Run Code Online (Sandbox Code Playgroud)

就像在内存中如何分配它们一样?在第一种情况下,编译器如何知道“ a”的存储位置?来自符号表吗?如果是这样,如何找到符号表(或任何其他表)的地址?

在第二种情况下,我假设内存地址存储在大小为32位的变量中,那么如何确定该变量的位置(第二个代码中“ a”的地址)?

c c++ pointers structure

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

从几个结构访问字段到访问数组/向量的元素是否较慢?

我注意到其他学生喜欢使用大量数组来表示某些对象的字段.

这是因为从数组访问元素与从结构中访问字段的速度更快吗?

例如,假设我为某些对象存储了时钟周期...

1) An array of 5 ints 
2) As a field in 5 structures
Run Code Online (Sandbox Code Playgroud)

然后我需要访问这些元素以找到min/max.

我喜欢将某些对象的属性保持在一起的想法,而不是将多个数组用于自然适合的字段.我只是不确定我是否正在编写一个被认为是错误的编程习惯,将其作为一个结构中的字段来处理.

c++ arrays structure

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