小编mul*_*lle的帖子

用Java打印数组

我正在编写一个方法来打印它传递的每个Object.通过调用Object.toString()对象的方法可以正常工作,但不适用于数组.我可以通过该Object.getClass().isArray()方法找出它是否是一个数组,但我不知道如何投射它.

int[] a;
Integer[] b;

Object aObject = a;
Object bObject = b;

// this wouldn't work
System.out.println(Arrays.toString(aObject));
System.out.println(Arrays.toString(bObject));
Run Code Online (Sandbox Code Playgroud)

java arrays casting tostring

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

创建仅限于自己的类的通用接口

我想为这两个类创建一个通用接口,但我不确定如何以正确的方式指定泛型.

public class ThingA implements Thing {
    public ThingA createCopy(ThingA original);
}

public class ThingB implements Thing {
    public ThingB createCopy(ThingB original);
}
Run Code Online (Sandbox Code Playgroud)

我试过这个.

public interface Thing<V extends Thing<V>> {
    public V createCopy(V original);

}
Run Code Online (Sandbox Code Playgroud)

但是我仍然可以做这样的事情,这是不允许的.

public class ThingB implements Thing<ThingA> {
    public ThingA createCopy(ThingA original);
}
Run Code Online (Sandbox Code Playgroud)

java generics interface

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

Android Studio中的原始类型警告

在引用泛型类型时使用原始类型时,Android Studio不显示编译器警告.有没有办法启用此功能?

public class GenericClass<T> {
}

public class SpecificClass extends GenericClass {
}
Run Code Online (Sandbox Code Playgroud)

Eclipse通常显示以下警告:GenericClass是原始类型.应参数化对泛型类型GenericClass <T>的引用.

java compiler-warnings android-studio

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

在视图上叠加颜色

对于自定义AdapterView实现,我想为所选项添加颜色叠加.如何为AdapterView的子项添加颜色叠加?

events android overlay

6
推荐指数
2
解决办法
7550
查看次数

矩阵乘法:Strassen vs. Standard

我尝试使用C++ 实现Strassen算法进行矩阵乘法,但结果不是我所期望的.正如您所看到的,strassen总是花费更多时间,然后标准实现,并且只有2的幂的维度与标准实现一样快.什么地方出了错? 替代文字

matrix mult_strassen(matrix a, matrix b) {
if (a.dim() <= cut)
    return mult_std(a, b);

matrix a11 = get_part(0, 0, a);
matrix a12 = get_part(0, 1, a);
matrix a21 = get_part(1, 0, a);
matrix a22 = get_part(1, 1, a);

matrix b11 = get_part(0, 0, b);
matrix b12 = get_part(0, 1, b);
matrix b21 = get_part(1, 0, b);
matrix b22 = get_part(1, 1, b);

matrix m1 = mult_strassen(a11 + a22, b11 + b22); 
matrix m2 = mult_strassen(a21 + a22, …
Run Code Online (Sandbox Code Playgroud)

c++ performance matrix matrix-multiplication strassen

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

setgid()失败 - 不允许操作

我在C中创建了一个setuid程序.可执行文件如下所示:

-r-s-r-s--- 1 root users 13073 Jun 15 21:56 server
Run Code Online (Sandbox Code Playgroud)

我执行程序,userA/users并尝试将uid/gid设置为userB/otherUsers.setgid()失败,不允许操作.userA不属于otherUsers我如何更改有效的gid?


[编辑]以下是我所做的一个小小的总结.我的C程序,作为userA执行,将uid和gid设置为userB并创建一个文件.与预期不符,该文件属于组root,因为setgid()失败.

[userA@node uid]$ id
uid=11945(userA) gid=544(users) groups=544(users)
[userA@node uid]$ id userB
uid=11946(userB) gid=10792(otherUsers) groups=10792(otherUsers)
[userA@node uid]$ cat uid.c 
#include <stdio.h>
#include <unistd.h>

int main() {
  setuid(11946);
  setgid(10792);

FILE *f = fopen("userB_file", "w");
fclose(f);

return 0;
}
[userA@node uid]$ ls -l uid
-r-sr-sr-x 1 root root 7130 Jun 17 14:16 uid
[userA@node uid]$ ./uid 
[userA@node uid]$ ls …
Run Code Online (Sandbox Code Playgroud)

c linux permissions setuid

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

nftw线程安全

在C/C++中是否有任何线程安全的nftw()实现?在文档中说

"nftw()函数不一定是线程安全的."

我将使用nftw作为递归删除函数来遍历多线程应用程序中的目录结构.

c recursion thread-safety delete-file nftw

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

指定 Android Lint 版本

如何指定用于 Android Lint 的版本?来自 lint 报告:<issues format="5" by="lint 3.5.3">

android lint

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

在C++中为数组正确分配和释放内存

我正在处理动态数组.该函数empty_matrix()创建一个表示矩阵的新数组.delete_matrix()释放为矩阵分配的所有内存.

example()如果我打电话,功能是否会出现内存泄漏add(add(a, b), c)?在函数中分配的内存会发生什么add(...)?我必须释放它吗?我应该在哪里做?

 matrix empty_matrix(int dim) {
 matrix m;
 m.dim = dim;
 m.data = new int*[dim];
 for (int i = 0; i < dim; i++)
  m.data[i] = new int[dim];

 return m;
}

void delete_matrix(matrix m) {
 for (int i = 0; i < dim; i++)
  delete [] m.data[i];
 delete [] m.data;
}

matrix add(matrix a, matrix b) {
 matrix c = empty_matrix(a.dim);
 for (int i = 0; i < a.dim; …
Run Code Online (Sandbox Code Playgroud)

c++ arrays memory-management

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

如何在类的构造函数中初始化向量

如何在具有零值的类的contstructor中初始化二维向量?这不起作用:

#include <vector>
using namespace std;

class matrix {
 public:
  typedef int element_type;
  matrix(int dim):data(dim, vector<int>(dim, 0)) {
  }
 private:
  vector<vector<element_type>> data;
};
Run Code Online (Sandbox Code Playgroud)

我是否必须编写析构函数来释放向量?

c++ constructor initialization vector

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

使用0个元素初始化多维C数组

我怎么能简单地用0元素初始化一个多维C数组,如下所示:

int a[2][2] = { { 0, 0 }, {0, 0} }
Run Code Online (Sandbox Code Playgroud)

c arrays initialization

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

期待重定向stdin

我在远程服务器上运行脚本,就像使用此命令一样:

ssh root@host 'bash -s' < script.sh
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试使用expect来处理密码提示.这是脚本:

#!/usr/bin/expect
set cmd [lindex $argv 0]

spawn -noecho ssh root@host $cmd

expect {
  "password:" {
     send "password\r"
   }
}
Run Code Online (Sandbox Code Playgroud)

如果我运行脚本,它没有输出:

./ssh.exp 'bash -s' < script.sh
Run Code Online (Sandbox Code Playgroud)

我知道这不是没有密码使用ssh的方法,但这不是问题.


更新我用一个简单的脚本尝试了格伦杰克曼的想法,但它不起作用.这是我正在使用的脚本:

#!/usr/bin/expect
spawn ssh xxx@xxx

expect "*?assword:*"
send "pwd\r"

send "echo hello world"
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出:

[xxx@xxx bin]$ expect -d my.exp
expect version 5.43.0
argv[0] = expect  argv[1] = -d  argv[2] = my.exp
set argc 0
set argv0 "my.exp"
set argv ""
executing commands from command file …
Run Code Online (Sandbox Code Playgroud)

ssh input pipe expect

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

连接const char*字符串

我很困惑char *const char *.在我的例子中,我不确定如何将它们组合在一起.我有几个const char *字符串,我想连接到最后一个const char *字符串.

struct MyException : public std::exception
{
  const char *source;
  int number;
  const char *cause;

  MyException(const char *s, int n)
      : source(s), number(n) {}
  MyException(const char *s, const char *c)
      : source(s), number(0), cause(c) {}

  const char *what() const throw()
  {
    if (number != 0) {
      char buffer[1024];
      // why does this not work?
      cause = strerror_r(number, buffer, 1024);
    }

    // how to concatenate the …
Run Code Online (Sandbox Code Playgroud)

c++ string const concatenation char

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