小编Mir*_*vic的帖子

为什么在初始化多维数组时我不能完全省略维度?

在Visual Studio 2010中,此初始化按预期工作:

char table[2][2] = {
                       {'a', 'b'},
                       {'c', 'd'}
                   };
Run Code Online (Sandbox Code Playgroud)

但是写下这样的东西似乎不合法:

char table[][] = {
                     {'a', 'b'},
                     {'c', 'd'}
                 };
Run Code Online (Sandbox Code Playgroud)

Visual Studio抱怨此数组可能不包含'that'类型的元素,并且在编译之后,VS报告两个错误:缺少索引和太多初始化.

问题:为什么在初始化多维数组时我不能完全省略维度?

c initialization multidimensional-array

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

K&R - 了解练习2-8:这里究竟是什么问题?

我正在完成K&R书中的练习.目前我坚持练习2-8,其中说明如下:

Write a function rightrot(x, n) that returns the value of the integer x rotated to the right by n bit positions.

我遇到的麻烦是我似乎无法想象结果应该是什么样子.

如何或如何旋转?我是否把最左边的位置放到最右边的位置x,然后x向左移动并重复这个n位?或者我取一个块(n位)并将其置于n右侧,同时保留最右侧的其余位不变?

任何有用的答案表示赞赏.谢谢.

c bit-shift

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

如何将受密码保护的存储库添加到Sonatype Nexus?

我们正在使用Sonatype Nexus来管理不同的存储库.有人要求在我们的"公共存储库"组中添加受密码保护的存储库.问题是,我真的不知道如何实现这一目标.

我可以创建一个新的repo并将其添加到现有组中,并且可以选择身份验证,但我怎么能确保这样做呢?搜索网络只会产生创建受保护存储库的结果,但不会添加现有的受密码保护的远程存储库.

如果有资源链接解释如何解决这个特定问题,我将非常感激.

authentication sonatype

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

Quicksort - 为什么我的荷兰旗实现比我的Hoare-2分区实现慢?

作为一个学习练习,我在C中实现Quicksort算法.Pivot是3个值的中值,对于4个或更少元素的分区,我切换到Insertion Sort.

现在我一直在测试两种变体:一种使用Hoare的分区方案,另一种使用荷兰旗.

更新:包括两个变体的整个文件.

霍尔的:

#include <stdlib.h>
#include "quicksort.h"

#define THRESHOLD 4
#define SWAP(a, b)          \
{                           \
    char *a_swap = (a);     \
    char *b_swap = (b);     \
    int size_swap = size_q; \
    char tmp;               \
    while(size_swap-- > 0) {\
        tmp = *a_swap;      \
        *a_swap++ = *b_swap;\
        *b_swap++ = tmp;    \
    }                       \
}

#define MEDIAN_OF_3(left, mid, right)       \
{                                           \
    char *l = (left);                       \
    char *m = (mid);                        \
    char *r = (right); …
Run Code Online (Sandbox Code Playgroud)

c algorithm performance quicksort dutch-national-flag-problem

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

隐式类型转换:如果一个操作数很短而另一个操作数是char,那么char会转换为short吗?

K&R声明,如果任一操作数是int另一个操作数将被转换为int.当然,所有其他的规则(比如仅在这之后long double,float,unsigned int等)进行了跟踪.

通过该逻辑,如果另一个操作数是一个,char则将被转换为.但是如果操作中的最高整数类型是?intintshort

现在,很明显我并不需要显式地转换char到更大的整数,但我不怀疑,不ANSI-C处理之间的隐式转换charshort引擎盖下?K&R没有透露任何相关信息.

说,我有以下几行代码:

char x = 'x';
short y = 42;
short z = x + y;
Run Code Online (Sandbox Code Playgroud)

x转换成short?或者根本没有转换开始?

只是说清楚:我不是在询问是否或如何转换charshort.我只是想知道隐式类型转换会发生什么.

c short type-conversion char

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

Android - View没有ID - 为什么?

我有一个类应该根据单击的按钮调用另一个活动.这可以通过检查可用的ID来完成.

我的问题是:传递给我的类的视图没有id,或者更确切地说,它的值是NO_ID.让我感到困惑的是,视图(一个按钮)确实有一个ID.

public class StrengthOrganizer extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_strength_organizer);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_strength_organizer, menu);
    return true;
}


public void notifyActivity(View view) {
    Intent intent = null;

    int id = view.getId();

    switch(id){
        case    R.id.button_log_book_launcher:
                intent = new Intent(this, LogBook.class);
                break;

        case    R.id.button_programming_launcher:
                intent = new Intent(this, Programming.class);
                break;

        case    R.id.button_visualizer_launcher:
                intent = new Intent(this, Visualizer.class);
                break;

        default:
                return;
    }

    startActivity(intent);
}
}
Run Code Online (Sandbox Code Playgroud)

相应的XML文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" …
Run Code Online (Sandbox Code Playgroud)

java xml android

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

Java Swing Graphics - 为什么第一次渲染不能按预期工作?

我有一个奇怪的问题可能源于对Swing如何工作缺乏了解.当程序启动后第一次,当我按下其中一个字母键时,我尝试将面板重新渲染到窗口框架中,在面板再次变为白色之前,在面板上非常短暂地绘制有问题的字符.

在随后的击键中,程序然后按预期运行:面板使用与按下的键相关联的字符重新渲染.

由于角色IS绘制在第一个击键上,因此它在之后立即消失的事实必然意味着面板被渲染为AGAIN,从而覆盖了先前的内容.

这是代码:

// Main.java
public class Main {
public static void main(String[] args) {
    new GlyphFrame(new GlyphPanel());
}
}

// ---------------------------------------------------

// GlyphFrame.java
import javax.swing.JFrame;

public class GlyphFrame extends JFrame {
private static final long serialVersionUID = -7754180294993638709L;

private final int WIDTH = 500;
private final int LENGTH = 400;

public GlyphFrame(GlyphPanel panel){
    this.add(panel);
    this.setSize(WIDTH, LENGTH);
    this.setVisible(true);
    }
}

// ---------------------------------------------------
// GlyphPanel.java
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JPanel;

public class GlyphPanel …
Run Code Online (Sandbox Code Playgroud)

java swing

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