小编Leg*_*dre的帖子

MongoDB通过Mongoose JS - 什么是findByID?

我正在用ExpressJS,PassportJS,MongoDB和MongooseJS编写NodeJS服务器.我设法让PassportJS使用通过Mongoose获得的用户数据进行身份验证.

但要使其工作,我必须使用如下所示的"findById"函数.

var UserModel = db.model('User',UserSchema);

UserModel.findById(id, function (err, user) { < SOME CODE > } );
Run Code Online (Sandbox Code Playgroud)

UserModel是一个猫鼬模型.我之前声明了架构UserSchema.所以我想UserModel.findById()是一种Mongoose模型的方法?

findById做了什么,有什么文件吗?我用Google搜索了一下但没有发现任何东西.

mongoose mongodb

63
推荐指数
3
解决办法
10万
查看次数

如何在C中的函数中使用realloc

基于我在这里学到的东西:通过C中的函数操作动态数组.

void test(int data[])
{
    data[0] = 1;    
}    

int main(void)
{    
    int *data = malloc(4 * sizeof *data);

    test(data);

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

这很好用.但是,我也试图realloc在函数中使用.

void increase(int data[])
{
    data = realloc(data, 5 * sizeof *data);    
}
Run Code Online (Sandbox Code Playgroud)

这符合但运行时程序崩溃.

我应该如何在函数中使用realloc?

我知道我应该将结果分配给realloc变量并检查它是否是NULL第一个.这只是一个简化的例子.

c arrays malloc

32
推荐指数
3
解决办法
8万
查看次数

C中的动态数组 - 我对malloc和realloc的理解是否正确?

我正在学习如何在C中创建动态1D数组.下面的代码尝试执行以下操作:

  1. 使用malloc,创建一个10包含类型值的动态长度数组double.
  2. 将数组的每个条目设置为j/100for j = 0, 1,..., 9.然后打印出来.
  3. 使用添加一个额外的空条目到数组的末尾realloc.
  4. 将新条目设置为j/100并再次打印出每个条目.

测试:

 double* data = (double*)malloc(10*sizeof(double));

 for (j=0;j<10;j++)
 {
      data[j]= ((double)j)/100;
      printf("%g, ",data[j]);
 }

 printf("\n");

 data = (double*)realloc(data,11*sizeof(double));

 for (j=0;j<11;j++)
 {
     if (j == 10){ data[j]= ((double)j)/100; }
     printf("%g, ",data[j]);
 }

 free((void*) data);
Run Code Online (Sandbox Code Playgroud)

问题

  1. 我编码是对的吗?

  2. 教程我发现使用malloc没有放在(double*)前面.例如,

    int*指针;
    pointer = malloc(2*sizeof(int));

在Visual Studio 2010,Windows 7上,这不能为我编译.错误消息是

void类型的值不能分配给类型的实体int.

为什么它适用于那些教程而不适合我?我是否正确地猜测这是因为他们使用的编译器会(int*)在我的示例中自动填写它们?

c arrays malloc realloc

28
推荐指数
3
解决办法
6万
查看次数

在Cygwin/MinGW中安装/编译 - 如何设置包含"路径"?(符号链接?)

我一直在尝试使用Cygwin和MinGW在Windows 7中安装/编译C库.但是,我在以下期间遇到这样的错误make:

sys/resource.h: No such file or directory
sys/times.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我之前认为这可能是特定库的一个问题,并在此处询问:在Visual Studio 2010和Cygwin/MinGW中安装igraph的各种问题("sys/time.h not found"),但在遇到与不同库相同的错误后,我认为问题在于我.

尝试

cygwin/usr/include/sys/times.hcygwin/usr/include/sys/resource.h存在.在得到关于符号链接的建议之后,我曾经ln -s /usr/include/sys sys确保它sys/times.h有效.

我去看make了一个特定库(igraph)的输出.它说它进入了一个"src"文件夹.所以,我去了src文件夹并做了同样的事情:ln -s /usr/include/sys sys并确保它sys/times.h也在src文件夹中工作.

但是,我仍然得到:

fatal error: sys/times.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

如何make在/ usr/include/sys文件夹中设置"路径" 以查找"sys/times.h"或其他文件?我在这里错过了什么?

PS

请耐心等待,因为我通常是Windows用户,不熟悉Linux术语.

c cygwin mingw makefile windows-7

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

如何设置connect-mongo(或使用mongoose中的会话)

我正在使用ExpressJS和Mongoose.

var MongoStore = require('connect-mongo')(express);
var sessionStore = new MongoStore({db: 'myappsession'});

app.use(express.session({ secret: "myappsecret", store:sessionStore }));
Run Code Online (Sandbox Code Playgroud)

这导致"MongoError:错误:未经授权的数据库".我想我需要传递我的登录凭据.我也有,

var mongoose = require('mongoose');
var db = mongoose.createConnection('<omitted username, password and address>', 'myappsession');
Run Code Online (Sandbox Code Playgroud)

我猜connect-mongo需要这些信息才能登录我的数据库来创建会话存储?

如何通过connect-mongo登录信息?或者我做错了吗?

connect mongoose mongodb express

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

C qsort()具有动态n乘2多维数组

首先,我定义了一个包含2列和10行的动态数组.number例如,这里整数设置为10.

int** array;
int number = 10;

array = malloc(number * sizeof(int*));

for (i = 0; i < number; i++)
    array[i] = malloc(2 * sizeof(int));
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用qsort()它.

qsort( array, number, sizeof array[0], compare );
Run Code Online (Sandbox Code Playgroud)

这是我的比较功能.它按第一列中的整数值排序,然后按第二列排序,同时保留第一列中的顺序.例如,"0 2,1 7,0 1"将变为"0 1,0 2,1 7".

int compare ( const void *pa, const void *pb ) {
    int (*a)[1] = pa;
    int (*b)[1] = pb;
    if ( (a[0][0] < b[0][0]) || (a[0][0] == b[0][0])&&(a[1][0] < b[1][0]) ) return -1;
    if ( (a[0][0] …
Run Code Online (Sandbox Code Playgroud)

c qsort dynamic-arrays

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

无法在Cygwin中使用#include <sys/times.h>编译C代码

我试图使用Cygwin在Windows 7中安装/编译诸如igraph和SNAP之类的库(并且还尝试了MinGW-MSYS)并且遇到了一些问题.

我想我已经把问题缩小到了这个错误./configure:

checking sys/times.h usability... no
checking sys/times.h presence... no
checking for sys/times.h... no
Run Code Online (Sandbox Code Playgroud)

在Cygwin中,/usr/include/sys/times.h确实存在.我为MinGW搜索了这个,似乎sys/times.h不适用于MinGW,因为" POSIX/BSD"次"函数不是ANSI标准的一部分,并且在Mingw32运行时不存在 ".

作为一个实验,我尝试使用gcc在Cygwin中编译这个C代码:

#include <stdio.h>
#include <sys/times.h>

int main (void) 
{

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

这不会编译,错误sys/times.h no such file or directory.即使我将include更改为</usr/include/sys/times.h>或,也会发生这种情况<usr/include/sys/times.h>.在Cygwin命令中,启动/usr/include/sys/times.h工作正常.

如何获得sys/times.h的可用性和存在感?我可以安装包或库吗?

c cygwin

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

多个realloc比巨大的malloc更昂贵吗?

我使用动态数组来表示最小堆.有一个循环可以删除最小值,并将随机元素添加到最小堆中,直到出现某些条件.虽然我不知道堆的长度在运行时会如何变化(有很多随机性),但我知道上限,即1000万.我有两个选择:

1)使用malloc声明一个小数组,然后当堆中的元素数超过长度时调用realloc.

2)使用malloc声明一个1000万条目数组.这避免了调用realloc.

选项2是否比选项1更有效?

我用我的代码测试了这个,并且使用2似乎有显着的(20%)运行时间减少.这是因为代码中的随机性而估计的.使用malloc预先声明一个大型的10-50万个入口阵列有什么缺点吗?

c arrays malloc realloc

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

线性时间算法的和是线性时间?

如果问题是"愚蠢的",请原谅我.我是算法时间复杂性的新手.

我明白,如果我有n个数,我想总结他们来说,以"n步",这意味着该算法为O(n)或线性时间.即所采取的步数随输入数n而线性增加.

如果我写一个新的算法,一次又一次地进行5次求和,我知道它是O(5n)= O(n)时间,仍然是线性的(根据维基百科).

如果我说10个不同的O(n)时间算法(总和,线性时间排序等).我在n个输入上一个接一个地运行它们.

这是否意味着整体运行在O(10n)= O(n),线性时间?

algorithm time-complexity

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

通过引用辅助函数传递随机数生成器mt19937是否正确?

int helper( mt19937& generator ){ 

    do stuff; 
    return 0; 

}

#include "helper.h" 
// helper function defined in separate source file and included in header

mt19937 generator(time(NULL));

int main( ) {

    help(generator);

}
Run Code Online (Sandbox Code Playgroud)

创建和播种mt19937随机数生成器是否正确,然后通过引用将其传递给函数使用?

我这样做是因为我知道我只想种下mt19937一次.但是我在需要使用随机数生成器的单独源文件中有很多辅助函数.例如,具有随机播放功能.

c++ random c++11

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