首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Igraph_vector_init_finally和igraph_vector_cumsum

Igraph_vector_init_finally和igraph_vector_cumsum
EN

Stack Overflow用户
提问于 2016-08-23 16:41:12
回答 1查看 79关注 0票数 0

所以我看了c的igraph的源代码,因为我需要创建一种新的图形类型,它不包括在这个库中,但它与一个适合度的模型图有一定的关系。在阅读与构建这样一个图形相关的代码时,我发现这些函数在许多情况下都会被调用:

代码语言:javascript
复制
(void) IGRAPH_VECTOR_INIT_FINALLY(igraph_vector*,long_int);
(void) igraph_vector_cumsum(igraph_vector*,igraph_vector*);

我似乎无法通过文件夹找到它,我已经在网上搜索过了,但似乎我无法找到它能做什么。例如,在代码的一部分中:

代码语言:javascript
复制
/* Calculate the cumulative fitness scores */
  IGRAPH_VECTOR_INIT_FINALLY(&cum_fitness_out, no_of_nodes);
  IGRAPH_CHECK(igraph_vector_cumsum(&cum_fitness_out, fitness_out));
  max_out = igraph_vector_tail(&cum_fitness_out);
  p_cum_fitness_out = &cum_fitness_out;

其中cum_fitness_out是一个空向量,no_of节点是节点数,igraph是一个函数,用于检查函数igraph_cumsum的返回,向量尾返回向量的最后一个元素.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-25 12:47:05

IGRAPH_VECTOR_INIT_FINALLY(vector, size)是以下词的缩写:

代码语言:javascript
复制
IGRAPH_CHECK(igraph_vector_init(vector, size));
IGRAPH_FINALLY(igraph_vector_destroy, vector);

基本上,它用给定数量的未定义元素初始化一个向量,检查内存分配是否成功,然后将该向量放在所谓的“最终堆栈”之上,该堆栈包含在下面的代码出现错误时应该销毁的指针列表。有关IGRAPH_FINALLY的更多信息可以找到这里

igraph_vector_cumsum()计算向量的累积和;它的源可以在src/vector.pmt中找到。.pmt是“可怜人的模板”的意思;它本质上是一个C源文件,它包含一堆宏,允许库通过一些宏技巧快速“生成”不同基类型(整数、双值、布尔值等)的相同数据类型(例如向量)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39106604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档