小编jul*_*anc的帖子

Java ArrayList <GenericObject> .remove(GenericObject)返回false,但仍会减小ArrayList的大小

这是一些上下文:我正在进行一项分配,以折叠存储半边数据结构的网格中的边.这是直接相关的代码.

    System.out.println("Initial Size: " +heds.faces.size());
    if (! heds.faces.remove(currentHE.twin.leftFace));
    {
        System.out.println("We have a twin problem");
            //this will always print 
    }
    // Yet this will always be 1 less than the initial
    System.out.println("After twin removal: " +heds.faces.size());

    if ( !heds.faces.remove(currentHE.leftFace)) 
    {
        System.out.println("We have a problem");
    }
    System.out.println("Third: " +heds.faces.size());
Run Code Online (Sandbox Code Playgroud)

所以问题是"我们有一个双胞胎问题"总是打印,但它不应该,"双胞胎去除后"总是比初始尺寸小一个.

如果您觉得需要,这是剩下的信息.heds在类"HEDS"(半边数据结构)中定义:

     public HEDS( PolygonSoup soup ) {
    HalfEdge potentialTwin;
    HalfEdge[] currHalfEdges;
    Vertex curr, next;      
    for (int[] face : soup.faceList)
    {
        currHalfEdges = new HalfEdge[face.length];
        for (int i = 0; i < face.length; …
Run Code Online (Sandbox Code Playgroud)

java mesh arraylist data-structures

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

Go:JSON Marshaling一个错误

我正在Go中构建一个JSON API,我想以json的形式返回错误响应.

响应示例:

{
    "error": "Invalid request syntax"
}
Run Code Online (Sandbox Code Playgroud)

我认为我可以创建一个实现错误接口的包装器结构,然后使用Go的json marshaler作为一种干净的方式来获取错误的json表示:

type JsonErr struct {
    Err error `json:"error"`
}
func (t JsonErr) Error() string {
    return t.Err.Error()
}
Run Code Online (Sandbox Code Playgroud)

这只会编组一个JsonErr {"error":{}},有没有办法使用默认的Go json编组器来编码这个结构,或者我是否需要为JsonErr结构编写一个快速的自定义MarshalJson?

marshalling go

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

C:gettimeofday()每次运行都会产生相同的值

我正在尝试以秒精度打印ISO-8601中的时间.YYYY-MM-DDTHH:MM:SS.S

这是我的代码:

#include <sys/time.h>
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

void milli_time(char* dest, struct timeval* t)
{
    struct tm* timeInfo;
    strftime(dest, 22, "%Y-%m-%dT%t", localtime(&t->tv_sec));
    printf("%s\n", dest);
    fflush(stdout);
    char deciTime[3];
    sprintf(deciTime, ".%lu", ((t->tv_usec)/100000ul));

    strcat(dest, deciTime);
}

int main()
{
    struct timeval* theTime;
    char timeString[32];
    gettimeofday(theTime, NULL);
    printf("%lu.%lu\n", theTime->tv_sec, theTime->tv_usec);
    milli_time(timeString, theTime);
    printf("%s\n", timeString);
    fflush(stdout);
}
Run Code Online (Sandbox Code Playgroud)

每次运行它的输出是:

134520616.3077826840
1974-04-06T17:50:16
1974-04-06T17:50:16.30778
Run Code Online (Sandbox Code Playgroud)

我注意到的另一件事是tv_usec超过一百万.

c time gettimeofday

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

标签 统计

arraylist ×1

c ×1

data-structures ×1

gettimeofday ×1

go ×1

java ×1

marshalling ×1

mesh ×1

time ×1