标签: struct

如何使用 NSCoding 保存结构

如何使用 NSCoding 保存我的结构,以便即使用户关闭应用程序它也不会改变?如果您还可以向我展示如何正确实现缺失的代码,我将不胜感激。

使用以下两个新函数更新:这是我的代码:

    struct RandomItems: Codable
{
    var items : [String]
    var seen  = 0

    init(items:[String], seen: Int)
    {
        self.items = items
        self.seen = seen
    }

    init(_ items:[String])
    { self.init(items: items, seen: 0) }


    mutating func next() -> String
    {
        let index = Int(arc4random_uniform(UInt32(items.count - seen)))
        let item  = items.remove(at:index)
        items.append(item)
        seen = (seen + 1) % items.count
        return item
    }
    func toPropertyList() -> [String: Any] {
        return [
            "items": items,
            "seen": seen
        ]
    }


    }





override func viewWillDisappear(_ …
Run Code Online (Sandbox Code Playgroud)

xcode struct save nscoding swift

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

std::vector 的 C++ 结构体内存布局

对于以下结构体,由于 v 是动态分配的对象,那么内存对齐如何工作?struct S即使 v 的大小变大,其大小也是恒定的吗?那么 v 本质上是作为一个指针(或者某种指针的包装器)工作的吗?

struct S {
    ANY_TYPE a;
    std::vector<ANY_TYPE> v;
} s;
Run Code Online (Sandbox Code Playgroud)

如果上述所有问题的答案都是肯定的,那么随着 v 大小的变化,其成员的内存存储在哪里?这些内存是在堆上还是在堆栈上?

编辑:我看到这个问题的反对票,并意识到我应该对 std::vector 本身进行更多研究。我读了这篇文章,一切都清楚了。感谢您的回答!

c++ struct vector

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

结构中的空字段是否消耗内存?

我有一个带有字段的结构:

type Measure struct {
    ID            int
    IndexName     string    
    IndexValue    int   
    Redistributed float64
    MyArray       []myObject
}
Run Code Online (Sandbox Code Playgroud)

如果我用

measure := Measure{
   ID: 10,
   IndexName: "",
   IndexName: 0,
   Redistributed: 0
   MyArray: nil         
}
Run Code Online (Sandbox Code Playgroud)

我的内存占用应该是多少?当我用空字段实例化一个结构体时,我是否仍然使用内存?

我很确定我是,但我只需要确认。

memory struct go

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

用结构前缀初始化是什么意思?

我正在阅读一些代码并遇到以下语句:

 struct sockaddr_in server
Run Code Online (Sandbox Code Playgroud)

我知道这sockaddr_in是一些预定义的,struct但为什么我们把它struct作为前缀?也如下所示,尝试了类似的事情

在此处输入图片说明

我不能只写:

sockaddr_in server
Run Code Online (Sandbox Code Playgroud)

c sockets struct

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

定义函数以在 C++ 中返回结构

using namespace std;
#include <iostream>
#include <cstring>

struct distance {
    int Kilometer;
    int Meter;
    int Centimeter;
};

distance add() {
}

int main() {
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

试图定义一个返回“距离”数据类型的函数。在尝试定义函数时,我遇到了“距离不明确”的问题。

c++ struct function

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

如何将结构作为参数传递给函数

我怎么能做这样的事情?

我试图将 astruct作为参数传递给Go 中的函数。

func handleEntityProperties(w http.ResponseWriter, r *http.Request) {
    const sliceSize = 100
    var entityProperties struct {
        Instance string `json:"instance"`
        Entities []struct {
            Id         string            `json:"id"`
            Properties map[string]string `json:"properties"`
            Type       string            `json:"type"`
        } `json:"entities"`
    }

    body, err := ioutil.ReadAll(r.Body)
    if err != nil {
        panic(err)
    }

    if !json.Valid([]byte(body)) {
        fmt.Fprintf(w, "invalid json")
        return
    }

    err = json.Unmarshal(body, &entityProperties)

    sendData(entityProperties.Entities[0:100])

    return
}

func sendData(entities struct) {
    log.Println("Doing things with entities ", entities)
}
Run Code Online (Sandbox Code Playgroud)

正如您在代码中看到的,我试图将 的前 100 个元素发送entityProperties.Entities …

json struct types go slice

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

在 C 中使用 typedef 结构进行 qsort

在搜索了很多帖子后,我无法解决我的问题。我想根据一个字段(截止日期)订购一组结构:

typedef struct{
    int ident;
    int computation;
    int period;
    int deadline;
}task_t;
task_t *tasks;

int compare(const void *a, const void *b) {

        task_t *ia = *(task_t**)a;
        task_t *ib = *(task_t**)b;
        //task_t *ia = (task_t *)a;
        //task_t *ib = (task_t *)b;

        return (ia->deadline - ib->deadline);
}

//Randomly generation of parameters of tasks

fprintf(stderr,"before:\n");
    for (i=0;i<nT;i++){
            fprintf(stderr,"%d;%d;%d;%d\n", tasks[i].ident, tasks[i].computation, tasks[i].deadline,tasks[i].period);
        }

size_t size = sizeof(tasks) / sizeof(task_t*);

qsort(tasks, size, sizeof(task_t *), compare);


    fprintf(stderr,"\after:\n");
    for (i=0;i<nT;i++){
            fprintf(stderr,"%d;%d;%d;%d\n", tasks[i].ident, tasks[i].computation, tasks[i].deadline,tasks[i].period);
        }
Run Code Online (Sandbox Code Playgroud)

在qsort之前和之后,结果是一样的。我认为问题是指针,但我不知道如何解决。我尝试了很多组合 qsort(&tasks, …

c struct typedef qsort

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

我可以创建一个只能动态分配的结构吗?

在 C++ 中,我可以创建一个只能动态分配的结构吗?我想强制执行一种方法来确保程序员不能静态分配这个结构,因为这样做会导致悬空指针,因为我需要在其范围之外使用指针的内容。

c++ oop struct pointers dangling-pointer

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

继承语法。有什么不同?

在 Go 中,下面有什么区别?

我试图搜索,但我想不出一个合适的术语来描述它们。它们的正式名称是什么?

#1 - 结构内的父级:

type MyTime struct {
    time.Time
}
Run Code Online (Sandbox Code Playgroud)

#2 - 在我的类型之后没有结构定义的父级:

type MyTime time.Time
Run Code Online (Sandbox Code Playgroud)

对于#2,我可以用另一个 time.Time 来初始化我的类型mt := MyTime(t)。如何使用另一个 time.Time 变量初始化 #1 类型?

struct types go

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

声明一个结构变量,它是另一个结构的动态数组。为什么下面的 C++ 程序会崩溃?

我已经声明了一个结构变量,它是另一个结构的动态数组,但程序每次都崩溃。我哪里做错了?需要采取哪些必要步骤?我正在使用 DEVC++。

#include<iostream>
#include<cstdlib>

using namespace std;

struct Project{
    int pid;
    string name;
};

struct employee{
    int eid;
    string name;
    Project *project_list;
};

int main(){
   struct employee e;
   e.eid = 123;
   e.name = "789";
   e.project_list = (Project *)malloc(2 * sizeof(Project));

   e.project_list[0].pid = 100;
   e.project_list[0].name = "Game";
}
Run Code Online (Sandbox Code Playgroud)

c++ struct dynamic-memory-allocation

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