在Java中,使用以下函数为巨大的矩阵X打印其列不同的元素:
// create the list of distinct values
List<Integer> values = new ArrayList<Integer>();
// X is n * m int[][] matrix
for (int j = 0, x; j < m; j++) {
values.clear();
for (int i = 0; i < n; i++) {
x = X[i][j];
if (values.contains(x)) continue;
System.out.println(x);
values.add(x);
}
}
Run Code Online (Sandbox Code Playgroud)
首先,我按列(索引j)和内部按行(索引i)进行迭代.
对于不同的矩阵,此函数将被调用数百万次,因此应优化代码以满足性能要求.我想知道值数组.使用values = new ArrayList<Integer>();
或values = null
替代它会更快values.clear()
吗?
这是我第一次用 C 做一个项目。我只是想制作一个 SSH 客户端。
我的代码是从 libssh2 站点复制的
http://www.libssh2.org/examples/ssh2.html
但是当我运行它时,我收到以下错误?
main.o: In function `main':
main.c:(.text+0xbe): undefined reference to `libssh2_init'
main.c:(.text+0x1a7): undefined reference to `libssh2_session_init_ex'
main.c:(.text+0x1bf): undefined reference to `libssh2_session_startup'
main.c:(.text+0x209): undefined reference to `libssh2_hostkey_hash'
main.c:(.text+0x282): undefined reference to `libssh2_userauth_list'
main.c:(.text+0x3e3): undefined reference to `libssh2_userauth_password_ex'
main.c:(.text+0x443): undefined reference to `libssh2_userauth_keyboard_interactive_ex'
main.c:(.text+0x4b9): undefined reference to `libssh2_userauth_publickey_fromfile_ex'
main.c:(.text+0x529): undefined reference to `libssh2_channel_open_ex'
main.c:(.text+0x58d): undefined reference to `libssh2_channel_setenv_ex'
main.c:(.text+0x5d9): undefined reference to `libssh2_channel_request_pty_ex'
main.c:(.text+0x633): undefined reference to `libssh2_channel_process_startup'
main.c:(.text+0x674): undefined reference to `libssh2_channel_free'
main.c:(.text+0x6a0): …
Run Code Online (Sandbox Code Playgroud) 我希望这个问题适合这里,否则很抱歉.
我有一个物理闹钟(5 $),它已被编程为贪睡,灯光效果等.
通常,所有这些设备,如计算器,高保真系统(带显示屏)等. 他们如何以及使用哪种语言编程?
他们都需要一个小型处理器吗?......还是有一个处理器的小兄弟,这么便宜又快速地完成这项工作?
我们可以/可以对这些设备进行重新编程以进行定制吗?哪种编程语言?
这真让我好奇.
谢谢你的时间
考虑以下输入:
String[] input = {"a9", "aa9", "a9a9", "99a99a"};
Run Code Online (Sandbox Code Playgroud)
使用StringBuilder直接替换9之前的任何数字与字母表后面的下一个字母时,最有效的方法是什么?
处理完这些输入后,输出应为:
String[] output = {"b9", "ab9", "b9b9", "99b99a"}
Run Code Online (Sandbox Code Playgroud)
我一直在摸不着头脑,而StringBuilder.setCharAt是我能想到的最好的方法.
任何建议或意见将不胜感激.
我有一个矩阵类,使用[] []来访问元素.当一个(或两个)索引超出范围时,我必须抛出CIndexException.它是以"无效索引[a] [b]"格式存储文本的类,其中a和b是数字.
这是我当前实现的CIndexException类
class CIndexException
{
string text;
public:
CIndexException (int a, int b)
{
ostringstream oss;
oss << "Invalid index [";
oss << a;
oss << "][";
oss << b;
oss < "]";
text = oss.str();
}
string get() const
{
return text;
}
};
Run Code Online (Sandbox Code Playgroud)
Matrix表示为二维的二维数组,它在构造函数中初始化:
CMatrix(int r, int c)
{
colls = c;
rows = r;
mat = new double * [rows];
for (int i = 0; i < rows; i++)
{
mat[i] = new double [colls]; …
Run Code Online (Sandbox Code Playgroud) 我在Eclipse中编写了这个Java接口程序,但在MyTriangle下面有一个红线tmp = new MyTriangle(); 当我运行程序时,我收到此错误:
不能访问Question1类型的封闭实例.必须使用Question1类型的封闭实例限定分配(例如,xnew A(),其中x是Question1的实例).
public static void main(String[] args)
{
MyTriangle tmp = new MyTriangle();
tmp.getSides();
System.out.println();
System.out.println("The area of the triangle is " + tmp.computeArea());
}
interface Triangle
{
public void triangle();
public void iniTriangle(int side1, int side2, int side3);
public void setSides(int side1, int side2, int side3);
public void getSides();
public String typeOfTriangle();
public double computeArea();
}
class MyTriangle implements Triangle
{
private int side1,side2,side3;
public void triangle()
{
this.side1 = 3; …
Run Code Online (Sandbox Code Playgroud) 首先,我理解结构中的字节填充.但我仍然有一个小测试包含struct中的双字段,我不知道如何解释这个:
typedef struct {
char a;
double b;
}data;
typedef struct{
char a;
int b;
}single;
int main(){
printf("%d\n",sizeof(double));
printf("%d\n",sizeof(single));
printf("%d\n",sizeof(data));
}
Run Code Online (Sandbox Code Playgroud)
通过这个测试,答案是:8
8
和16
.
为什么这个结果会让我思考?
通过第二次测试,我们可以看到我机器上的单词大小是4个字节.
通过第一次测试,我们可以看到double的大小是8个字节.
所以,在struct data
:结果应该是12个字节:char为4个字节,double为8个字节.
但是,我不知道为什么结果是16个字节.(跟我这么奇怪)
请为我解释一下,谢谢:)
我是Java的新手(虽然我对C#经验丰富)无论如何,我在过去的几个小时里用Google搜索,我无法理解某些东西,希望你能帮助我一些指导.
我想将Eclipse与SQL Server一起使用,我不知道我是怎么做的,我看过一些名为SQLExplorer的插件,但我无法确定与之集成的步骤是什么.
关于:
谢谢你们.
我试图解决Project Euler问题10,其中要求用户计算少于200万的所有素数的总和.我通过研究维基百科上的伪代码写了以下内容,但它产生的答案似乎是不正确的,至少根据网站每当我尝试输入它时:
int main()
{
int limit = 2000000;
int answer = 5;
std::vector<bool> isPrime;
for( int i = 0; i < limit; ++i ){
isPrime.push_back( false );
}
int n = 0;
for( int x = 1; x <= ceil( sqrt( limit ) ); ++x ){
for( int y = 1; y <= ceil( sqrt( limit ) ); ++y ){
n = 4*x*x + y*y;
if( (n <= limit) && ( n%12 == …
Run Code Online (Sandbox Code Playgroud)