测试 igraph 安装的 C++ 代码

图计算库 igraph 在 windows 10 上的编译安装 图计算库 igraph 在 windows 10 上的安装 参考:https://igraph.org/c/doc/igraph-Installation.html#igraph-Installation-general-build-instructions 前提 win10 家庭版 + vs2017 社区免费版 (C/C++) cmake-3.20.2 (https://github.com/Kitware/CMake/releases/download/v3.20.2/cmake-3.20.2 阅读详情

在安装 igraph 库后,可以通过以下代码测试是否安装成功。代码创建一个简单的图,并输出其基本信息。

#include <igraph.h>
#include <iostream>

int main() {
    igraph_t graph;
    igraph_vector_int_t edges;

    igraph_vector_int_init(&edges, 0);
    igraph_small(&graph, 0, IGRAPH_UNDIRECTED, 0,1, 1,2, 2,3, 3,4, -1);
    igraph_write_graph_edgelist(&graph, stdout);

    igraph_destroy(&graph);
    igraph_vector_int_destroy(&edges);

    return 0;
}

编译和运行代码

确保系统已安装 igraph 的开发库。使用以下命令编译代码:

g++ -std=c++11 -I/usr/local/include/igraph -L/usr/local/lib -ligraph test_igraph.cpp -o test_igraph

运行生成的可执行文件:

./test_igraph

预期输出

代码应输出图的边列表,例如:

0 1
1 2
2 3
3 4

检查安装问题

如果编译或运行时出现问题,可能是 igraph 未正确安装。确保:

  • 开发库和头文件已安装
  • 链接路径和库名称正确
  • 编译器支持 C++11 或更高版本

高级测试代码

以下代码测试更多 igraph 功能:

#include <igraph.h>
#include <iostream>

int main() {
    igraph_t graph;
    igraph_vector_int_t degree;

    igraph_vector_int_init(°ree, 0);
    igraph_small(&graph, 0, IGRAPH_UNDIRECTED, 0,1, 1,2, 2,3, 3,4, -1);
    igraph_degree(&graph, °ree, igraph_vss_all(), IGRAPH_ALL, IGRAPH_LOOPS);

    std::cout << "Degrees: ";
    for (int i=0; i<igraph_vector_int_size(°ree); i++) {
        std::cout << VECTOR(degree)[i] << " ";
    }
    std::cout << std::endl;

    igraph_destroy(&graph);
    igraph_vector_int_destroy(°ree);

    return 0;
}

注意事项

  • 确保所有 igraph 对象在使用后销毁
  • 检查函数返回值以处理潜在错误
  • 对于复杂项目,考虑使用 CMake 或其他构建系统管理编译
为VS2013配置igraph 因为要进行图数据可视化方面的研究,所以需要在C++上配置igraph进行后续的实验测试。但是在配置igraph的过程中遇到了很多阻碍,通过搜索网上多位博主的经验,以及求助同学,耗时特别久终于解决了这个问题,于是决定写篇博客造福后人。同时感谢之前贡献经验的博主,感谢帮助我解决了问题的张同学和贾同学。 需要条件:安装好的VS2013。 igraphC++包下载地址为:http://igr 阅读详情

相关推荐

从零搭建Obsidian智能知识库:Ollama本地模型与Copilot插件实战指南

本文详细介绍了如何从零搭建Obsidian智能知识库,结合Ollama本地模型与Copilot插件实现高效知识管理。通过本地部署AI助手,用户可以在保证隐私安全的同时,快速检索和整理笔记,提升工作效率。文章涵盖硬件准备、Ollama部署、插件配置及实战技巧,适合需要高效知识管理的专业人士。

weixin_29230773的博客 585

[C++]igraph安装测试代码

输出结果可以直观展示:即使添加很少的随机边,也能大幅降低规则网格的平均路径长度。最后的getchar()是为了在Windows环境下保持控制台窗口不立即关闭。代码语言javascript。

ahflex126r的博客 620

论文阅读 Quantum Convolutional neural network

在传统的局域序参量(如磁化强度 ⟨Xi⟩)无法有效区分某些拓扑相(如 Haldane 相)时,字符串序参量(SOP)提供了一种方法来识别这些相。字符串序参量的定义通常涉及多个远离的站点之间的长程关联,通常具有如下形式:Zi,Xk,Zj是泡利矩阵(Pauli operators)。指数项 eiπ∑k=ijXk表示一个相位因子。这意味着我们要计算两个远离站点 i,j 的Z 分量的关联,同时考虑它们之间的X 作用。这个非局域的字符串序参量可以用来检测对称保护拓扑(SPT)相。

m0_54373077的博客 1966

在Visual Studio 2010中安装iGraph

安装步骤参考了:http://www.16kan.com/question/detail/182225.html Igraph actually does work with Visual C++ 2010 Express, we test this before releases, and I have just tried it.You need to do the followi...

weixin_30657999的博客 237

Windows下安装igraph

Windows下安装igraph 1. 找出Windows上安装的python版本 在命令提示符中输入python python 3.5.2 2. 下载并安装pycairo pycairo pip install pycairo-1.16.3-cp35-cp35m-win_amd64.whl 3. 下载并安装python-igraph python-igraph pip ...

Doris_Ma的博客 1726

igraph安装与使用指南

在 `igraph` 开源库中,主要的目录和文件结构如下: - **README.md**: 项目的基本说明,包括简介和链接到其他资源。 - **SUPPORT.md**: 提供支持和帮助的信息。 - **azure-pipelines.yml**: Azure Pipelines 的持续集成配置文件。 - **codecov.yml**: Codecov 的代码覆盖率报告配置文件。 - **i...

gitblog_00901的博客 1302

Eclipse CDT调用igraph(C library)环境配置

声明:本人在windows环境下使用Cygwin gcc编译器调用igraph c版本库,假设您已经安装好Eclipse CDT。 1. 参照Installation on Windows under Cygwin下载并安装Cygwin,并安装必要库,如gcc等。 2. 在Cygwin环境下安装igraph: 2.1 下载igraph c版本库. 2.2 解压igraph...

puppet_love的专栏 827

igraph 安装指南:从源码构建到功能配置

igraph 是一个功能强大的网络分析工具库,广泛应用于复杂网络的研究和分析。本文将详细介绍如何从源码构建和安装 igraph,包括系统要求、构建步骤以及各种配置选项的说明。 ## 系统要求 在开始安装 igraph 之前,请确保您的系统满足以下基本要求: ### 核心依赖 - **CMake 3.18 或更高版本**:igraph 使用 CMake 作为构建系统 - **C/C++ 编译...

gitblog_00163的博客 639

Spring 源码系列(23): SpringApplication.run() 启动全流程

本文深入解析了SpringApplication.run()的核心流程,通过源码拆解揭示了从启动到容器就绪的完整生命周期。文章重点分析了三个关键阶段:prepareEnvironment的配置加载逻辑(系统属性>环境变量>配置文件)、createApplicationContext的容器类型推断机制(基于classpath判断Web/Reactive/普通应用),以及callRunners的启动后回调特性(按@Order执行初始化任务)。同时澄清了常见误区,如内嵌Tomcat实际在refresh阶段的onR

不才不才不不才的博客 383

Java 并发灵魂拷问:notify/signal 唤醒顺序是规范还是实现?

本文探讨了Java中Object.notify()和Condition.signal()唤醒线程的顺序问题。关键结论如下: Object.notify(): JVM规范未规定唤醒顺序,HotSpot实现虽采用FIFO(从WaitSet头部取线程),但这属于实现细节而非规范要求 由于synchronized是非公平锁,被唤醒线程需重新竞争锁,最终执行顺序无法保证 严禁业务代码依赖该顺序 Condition.signal(): 严格按FIFO顺序唤醒(AQS等待队列头部线程) 是设计约定,业务可合理依赖该特性

weixin_68315058的博客 362

[Java]-微服务面试题

服务降级是服务自我保护的一种方式,或者保护下游服务的一种方式,用于确保服务不会受请求突增影响变得不可用,确保服务不会崩溃。微服务的负载均衡主要使用了一个组件Ribbon,比如,我们在使用feign远程调用的过程中,底层的负载均衡就是。2,我们还在skywalking设置了告警规则,特别是在项目上线以后,如果报错,我们分别设置了可以给相关负责人。简历上写的微服务,只要是发生了多个服务之间的写操作,都需要进行分布式事务控制。2,在客户端的配置文件中,可以配置某一个服务调用的负载均衡策略(局部)

. 611

49. 【Java】JDK 21的虚拟线程(上):革命性的并发模型

本文深入解析JDK 21引入的虚拟线程(Virtual Threads)技术,从传统平台线程的资源瓶颈出发,阐述虚拟线程的轻量级特性、M:N调度模型及其工作原理。详细介绍了两种创建虚拟线程的方法,并通过性能对比实验展示其在I/O密集型场景下的显著优势。总结了虚拟线程的适用场景、使用注意事项以及与平台线程的核心差异,帮助开发者掌握这一革命性的并发编程工具。

gugucoding的博客 526

Java Spring 批量修改,实体、接口、方法的定义

本文描述了一个批量更新车辆类型的接口实现。该功能通过Controller层接收包含出库单ID列表和车辆类型的请求参数,调用Service层进行处理。实现层采用事务管理,首先验证参数有效性,然后查询对应出库单数据并批量更新车辆类型字段,最后返回操作结果(成功更新记录数或错误信息)。该接口主要用于快递业务中其他出库单的车辆类型批量修改操作,包含完整的参数校验、异常处理和事务管理机制。

LYBWWP 44

并发 13 · 异步编排

摘要:本文探讨了异步编排在秒杀下单场景中的应用,分析了传统Future的局限性,并介绍了CompletableFuture如何通过链式调用解决任务依赖与并行问题。文章详细讲解了创建异步任务、串联任务(thenApply/thenCompose)、合并任务(thenCombine/allOf)以及异常处理等核心方法,强调使用独立线程池避免阻塞公共资源。最后结合秒杀案例,展示了如何构建高效、清晰的异步流水线,优化响应时间。全文提供代码示例和选型建议,帮助开发者实现高性能异步流程编排。

记录后端技术的深水区:MySQL、并发、JVM、分布式。原理为主,实战为辅,能少踩一个坑是一个。 389

简单聊聊 OpenFeign 框架源码

骨架:JDK 动态代理 + 方法元数据 + handler 分发,和 MyBatis 同一套路;主线:调用 → 填 RequestTemplate → 拦截器 → 负载均衡选实例 → Client 执行 → Decoder 解码,异常走 ErrorDecoder/Retryer/fallback;Spring 整合三件事扫描注册 FactoryBean、懒构建代理、给每个客户端独立配置;面试主线。

weixin_47626220的博客 376

Spring配置文件

本文系统介绍了配置文件的作用、Spring Boot支持的配置文件格式及其特点。首先阐述了配置文件解决硬编码问题、实现程序灵活配置的核心价值,并以手机字体大小为例说明其应用场景。接着详细讲解了Spring Boot支持的三种配置文件格式(.properties、.yml、.yaml),包括它们的加载优先级和共存规则。最后分别深入分析了properties配置文件的键值对语法、@Value注解读取方式及其冗余信息缺点,以及yml配置文件的基本语法、引号使用规则和优缺点对比,为开发者选择合适的配置文件格式提供参

qq_71356343的博客 242

LangChain4J

Prompt:好比UI层,进行用户交互Langchain4j, Spring AI:好比Controller,调用AI大模型各类AI大模型:好比Service,提供人工智能服务向量数据库:好比Mapper,进行数据存储。

渔阳的博客 188

Spring Boot 实现数据脱敏:自定义注解 + Jackson 序列化器

加了它之后,@Sensitive 就等价于 @JsonSerialize(using = SensitiveJsonSerializer.class) ,Jackson才能识别并触发我们的序列化器。Jackson默认不认识我们自定义的 @Sensitive 注解,@JacksonAnnotationsInside 的作用是:允许把 @JsonSerialize 组合进自定义注解。时,数据库里存的一直是完整值,脱敏是一个展示的动作,而存储层要保护数据应该使用。的这一层比较好,下面是具体实现。

sjkflw121150的博客 208

零信任架构实战:基于天远企业年报信息核验构建自动化供应商准入网关

破解供应商准入核查痛点:从传统人工资质初筛到自动化数据穿透 在大型 B2B 供应链采购平台的微服务架构中,供应商准入尽职调查(KYC)是保障平台交易生态健康的核心防线。传统的准入流程往往依赖业务人员手工收取企业营业执照、年度审计报告等纸质或电子扫描件,并登录多平台逐一核对。这种模式不仅流程繁琐、效率极低,而且难以实时防范非存续异常主体或信息不匹配资质的问题,

2501_94042197的博客 216

基于爬虫技术爬取北京链家历年二手房成交记录!.zip

基于爬虫技术爬取北京链家历年二手房成交记录!.zip

上一篇: 基于winform部署PP-OCRv5的推理模型paddleocrv5模型部署
Alex1229
博客等级 码龄1年 33粉丝 · 13原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值