小编Stu*_*ntX的帖子

HashMap的replace和put之间的区别

我想通过使用a来制作直方图HashMap,键应该是延迟,值是此延迟发生的次数.如果已经存在的延迟有新的发生,我怀疑使用HashMap replaceHashMap put函数.

我是这样做的

int delay = (int) (loopcount-packetServed.getArrivalTime());
if(histogramType1.containsKey(delay))
{
    histogramType1.replace(delay, histogramType1.get(delay)+1);   
}
else
{
    histogramType1.put(delay, 1);
}
Run Code Online (Sandbox Code Playgroud)

它是否正确?或者我应该使用put函数的两倍?

java hashmap

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

我的代码输出异常

我正在尝试用c ++读取一个数组,填充0到5之间的值.由于一个不重要的原因,我需要计算在'iii上有多少数字1,数字2,数字3,数字4和数字5*DAYS'位置,所以当iii = 0且DAYS为5时,我需要知道在第0,第4,第9,第14位置有多少个数字1,数字2,数字3,数字4和数字5.我发布的代码做得很好,但有时,给出一个非常大的非逻辑值,-36589245或99653256,有人可以告诉我为什么会发生这种情况(确实会发生+ - 一次在一个很长的时间内)

DAYS = 28
NURSES = 33
SHIFTS =5

int calculate_penalty_coverage_offspring(int offspring[NURSES*DAYS])
{
    int temporary[DAYS];
    int count[DAYS][SHIFTS];
    penalty_score_offspring_coverage =0;

        for (int ii = 0; ii<DAYS; ii++) 
        {
            int een  = 0;
            int twee = 0;
            int drie = 0;
            int vier = 0;
            int vijf = 0;
            for (int iii = 0; iii<NURSES; iii++)
            {
                temporary[iii] = offspring[(ii+(iii*DAYS))];
            }
            for(int a = 0 ; a<DAYS ; a++)
            {

                if(temporary[a]== 1)
                {
                    een++;
                    count[ii][0] = een; …
Run Code Online (Sandbox Code Playgroud)

c++

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

标签 统计

c++ ×1

hashmap ×1

java ×1