小编Ton*_*ony的帖子

initialize,define之间的区别是声明一个变量

在阅读问题后,我知道声明和定义之间的区别.那么这意味着定义等于声明加初始化吗?

c c++ terminology

64
推荐指数
3
解决办法
9万
查看次数

为什么首先编译为目标文件?

在去年,我开始在Fortran开设编程,在一所研究型大学工作.我之前的大部分经验都是使用PHP或旧ASP等网络语言,所以我是编译语句新手.

我有两个不同的代码我正在修改.

其中 有一个明确的声明创建的.o从模块文件中创建可执行文件之前(如gfortran -c filea.f90).

另一个直接创建可执行文件(有时创建.mod文件,但没有.o文件,例如gfortran -o executable filea.f90 fileb.f90 mainfile.f90).

  • 是否有一种理由(除了,也许是Makefiles)一种方法比另一种方法更受欢迎?

c c++ fortran compilation object-files

31
推荐指数
3
解决办法
8818
查看次数

C++错误:抛出'std :: bad_alloc'实例后调用terminate

我在eclipse上使用下面的代码,我得到一个错误终止"在抛出'std :: bad_alloc'的实例后调用what():std :: bad_alloc".

我有RectInvoice类和Invoice类.

class Invoice {
public:

    //...... other functions.....
private:
   string name;
   Mat im;
   int width;
   int height;
   vector<RectInvoice*> rectInvoiceVector; 
};
Run Code Online (Sandbox Code Playgroud)

我在Invoice的方法中使用下面的代码.

        // vect : vector<int> *vect;

        RectInvoice rect(vect,im,x, y, w ,h);
        this->rectInvoiceVector.push_back(&rect);
Run Code Online (Sandbox Code Playgroud)

我想在eclipse.ini文件中更改eclipse内存.但我没有授权这个.我怎么能这样做?

c++ memory-management runtime-error

22
推荐指数
2
解决办法
11万
查看次数

异常发生时如何定位lambda?

假设我有一个ComparatorFactory,它有许多由lambda组成的比较器:

   public static Comparator<SomeClass> getXCmp() {
      return (o1, o2) -> {
         Double d1 = Double.parseDouble(o1.getX());
         Double d2 = Double.parseDouble(o2.getX());
         return d1.compareTo(d2);
      };
   }
Run Code Online (Sandbox Code Playgroud)

我使用这些比较器对数据进行排序和过滤.不幸的是,我在某个地方使用了错误的比较器,它导致ClassCastException如下所示:

java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.String
at businesslogic.utility.ComparatorFactory$$Lambda$24/115669291.compare(Unknown Source)
at javax.swing.DefaultRowSorter.compare(DefaultRowSorter.java:968)
...
...
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,它显示了(Unknown Source)哪些使我很难找到哪个比较器出错.我也试着比较发生之前(即,在上面的示例,在添加断点DefaulRowSorter.java:968),但next step也无法找到它是拉姆达(它跳到错误的比较:在没有做doublestring,当我终于找到了它不是正确的错误).

在我发现错误之后(通过尝试理解整个项目和很多时间),我尝试了一个匿名类.堆栈的回溯明确地告诉我它在哪里.

问:

如果我希望lambda提供简洁的代码,有没有什么好方法可以找到lambda源的位置或者在发生异常时帮助我的任何好的做法?

一个简单的例子来重新产生类似的问题.

java lambda exception

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

ceil()和floor()的实现

只是好奇这些是如何实现的.我看不出我会从哪里开始.他们直接在float's/double'位上工作吗?

另外在哪里可以找到math.h的函数源代码?我找到的只是带有原型的头文件或带有从其他地方调用其他函数的函数的文件.

编辑:编辑标题后,部分信息丢失了.我特别指的是ceil()floor()功能.

c math

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

在我的应用程序中使用auth/admin/realms/myrealm/users时遇到瓶颈

我正在运行一个脚本,在请求域的用户列表之前请求主令牌.我在紧密循环中执行此请求100次,并输出执行"auth/admin/realms/mine/users?first=0&max=1000"请求所需的时间.

使用本地安装的keycloak docker进行测试时,单个请求需要4.0秒.如果我同时运行此脚本的5个实例,则单个请求大约需要10秒.如果我运行10个实例,它会在收到回复之前跳转到20秒.

因此,我在页面上的webapp中遇到了严重的瓶颈,我列出了所有用户信息,并想知道如何解决这个问题.

我运行keycloak 2.5.0.Final.我的家是/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-2.b15.el7_3.x86_64/jre.authorizationPersister = jpa.

我的剧本:

import requests

keyCloakUrl = "http://foo.bar"

for i in range(100):

    session = requests.Session()
    r = session.post(
        keyCloakUrl +"auth/realms/master/protocol/openid-connect/token", 
        data={
            "grant_type":"password",
            "client_id":"admin-cli",
            "username":"admin",
            "password":"admin"
        }
    )
    master_token = json.loads(r.content)['access_token']

    r = s.get(
        keyCloakUrl + "auth/admin/realms/mine/users?first=0&max=1000",
        headers={'Authorization':'Bearer '+master_token}
    )
    print(r.elapsed.total_seconds())
Run Code Online (Sandbox Code Playgroud)

我的dockerfile:

FROM jboss/keycloak-mysql:2.5.0.Final

ARG db2

ADD deps/ /opt/jboss/keycloak/
RUN /opt/jboss/keycloak/import_utbud_realm.sh 

CMD ["-b", "0.0.0.0", "-bmanagement", "0.0.0.0", "-Djboss.socket.binding.port-offset=2"]
Run Code Online (Sandbox Code Playgroud)

UPDATE

我还尝试测量"auth/realms/master/protocol/openid-connect/token"请求的时间.这是每个请求0.1秒,只有一个脚本运行实例,0.8秒运行10个实例.

java jpa docker keycloak

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

C:头文件中'extern'的用途是什么?

请原谅我,如果这听起来是一个多次被问过的问题,但我向你保证这有点不同.

我使用Codeblocks进行C编程,最近我开始想知道为什么有人在C中使用头文件.我理解它用于声明和/或定义变量结构.但这是我尝试过的东西,现在我很困惑.

我有一个名为的头文件

test1.h

#ifndef TEST1_H_INCLUDED
#define TEST1_H_INCLUDED

static int testvar = 233;
extern int one;
extern void show();

#endif // TEST1_H_INCLUDED
Run Code Online (Sandbox Code Playgroud)

和另外两个文件

headertest.c

#include"test1.h"
#include<stdio.h>

int one = 232;

int main()
{
    testvar = 12;
    printf("The address of one is %p and value is %d",&testvar,testvar);
    printf("value of one is %d",one);
    show();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

headertest2.c

#include "test1.h"
#include<stdio.h>

extern int one;
extern void show()
{
    //extern int one;
    testvar = 34;
    printf("\nThe address of one is %p and value …
Run Code Online (Sandbox Code Playgroud)

c extern

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

使用sizeof运算符

以下程序的输出

#include<stdio.h>
int main(){
    int *p[10];
    printf("%ld %ld\n",sizeof(*p),sizeof(p));
}
Run Code Online (Sandbox Code Playgroud)

8   <--- sizeof(*p) gives  size of single element in the array of int *p[10] 
80  <--- sizeof(p) gives  size of whole array which is 10 * 8 in size.
Run Code Online (Sandbox Code Playgroud)

现在看下面的程序

 #include<stdio.h>
 #define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))
 int array[] = {23,34,12,17,204,99,16};

  int main()
  {
      int d;
      printf("sizeof(array) = %ld \n",sizeof(array));
      printf("sizeof(array[0]) = %ld \n",sizeof(array[0]));
      printf("sizeof int %ld\n",sizeof(int));
      printf("TOTAL_ELEMENTS=%ld \n",TOTAL_ELEMENTS);
      for(d=-1;d <= (TOTAL_ELEMENTS-2);d++)
          printf("%d\n",array[d+1]);

      return 0;
  }
Run Code Online (Sandbox Code Playgroud)

sizeof(array) = 28 
sizeof(array[0]) …
Run Code Online (Sandbox Code Playgroud)

c sizeof

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

qemu KVM内核模块没有这样的文件或目录

我目前正在使用操作系统类,我需要使用qemu来运行我教授提供的小型操作系统.我试图在macbook air 5.2上的虚拟机上的ubuntu 12.04虚拟机中使用qemu.我知道我可能与嵌套虚拟化有关的问题,但是当我尝试运行qemu时遇到的具体错误是:

无法访问KVM内核模块:没有这样的文件或目录

无法初始化KVM:没有这样的文件或目录返回tcg加速器.

qemu确实启动了操作系统,但窗口闪烁了很多,我想尽可能修复KVM问题.我已经完成了研究,但我无法找到一个我能理解的解决方案或有效的解决方案,所以任何帮助都会受到高度赞赏.

同样对于virtualbox中的ubuntu虚拟机,我在Hardware Virtualization下选中了Enable VT-x/AMD-V和Enable Nested Paging.我也试过用

modprobe kvm-intel
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

致命错误:插入kvm_intel时出错(/lib/modules.3.5.0-22-generic/kernel/arch/x86/kvm/kvm-intel.ko):不允许操作.

virtualization kvm qemu

8
推荐指数
2
解决办法
5万
查看次数

在结构中填充

我知道结构中填充(来自这篇文章的例子)

 struct A   -->8 bytes
 {
    char c;
    char d;
 //2 padding here
    int i;
 };
 struct B  -->12 bytes
 {
     char c;
 //3 padding here
    int i;
    char d;
 //3 padding here
 };
Run Code Online (Sandbox Code Playgroud)

现在,我不明白以下示例:

 typedef struct {  -->**shouldn't it be 12 bytes**
    int a;
    char *str;
 } TestS;

 TestS s;

int main(int argc, char *argv[]) {

   printf("An int is %lu bytes\n", sizeof( int )); -->4
   printf("A Char * is %lu bytes\n", sizeof( char …
Run Code Online (Sandbox Code Playgroud)

c struct

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