【CXX】6.9 CxxVector<T> — std::vector<T>

server/2025/3/17 20:56:29/

std::vector 的 Rust 绑定称为 CxxVector。

限制:

Rust 代码永远无法通过值获取 CxxVector。相反,在 Rust 代码中,我们只能通过引用或智能指针来访问向量,例如 &CxxVector 或 UniquePtr<CxxVector>。

CxxVector 不支持 T 为不透明的 Rust 类型。对于语言边界上的不透明 Rust 类型的集合,您应该使用 Vec(C++ 中的 rust::Vec)。

示例

此程序涉及 Rust 代码将 CxxVector(即 std::vectorstd::string)转换为 Rust 的 Vec。

rust">// src/main.rs#![no_main] // main 在 C++ 中由 main.cc 定义use cxx::{CxxString, CxxVector};#[cxx::bridge]
mod ffi {
extern "Rust" {
fn f(vec: &CxxVector<CxxString>);
}
}fn f(vec: &CxxVector<CxxString>) {
let vec: Vec<String> = vec
.iter()
.map(|s| s.to_string_lossy().into_owned())
.collect();
g(&vec);
}fn g(vec: &[String]) {
println!("{:?}", vec);
}
// src/main.cc#include "example/src/main.rs.h"
#include <string>
#include <vector>int main() {
std::vectorstd::string vec{"fearless", "concurrency"};
f(vec);
}

http://www.ppmy.cn/server/175778.html

相关文章

深度学习多模态人脸情绪识别:从理论到实践

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。https://www.captainbed.cn/north 文章目录 1. 引言2. 技术框架与流程图3. 核心算法解析3.1 视觉特征提取&#xff08;CNN&#xff09;3.2…

云原生周刊:Istio 1.25.0 正式发布

开源项目推荐 Dstack Dstack 是一个开源的 AI 计算管理平台&#xff0c;旨在简化 AI 任务的部署和管理。它支持本地和云端运行 AI 工作负载&#xff0c;并提供自动化的 GPU 资源调度&#xff0c;使开发者能够更高效地利用计算资源。Dstack 兼容 K8s&#xff0c;可以无缝集成到…

微软 AI 发布 LongRoPE2:近乎无损地将大型语言模型上下文窗口扩展至 128K 标记,保持 97% 短上下文准确性

大型语言模型&#xff08;LLMs&#xff09;虽然取得了显著进展&#xff0c;但其在有效处理长上下文序列方面的局限性依然存在。尽管像 GPT-4o 和 LLaMA3.1 这样的模型支持长达 128K 个标记的上下文窗口&#xff0c;但在扩展长度上保持高性能却颇具挑战。旋转位置嵌入&#xff0…

Android Room 框架表现层源码深度剖析(三)

一、引言 在 Android 应用开发中&#xff0c;表现层&#xff08;Presentation Layer&#xff09;扮演着至关重要的角色&#xff0c;它负责将数据以直观、友好的方式展示给用户&#xff0c;并处理用户的交互操作。Android Room 框架作为一个强大的数据库抽象层&#xff0c;为数…

AGI大模型(5):提示词工程

1 什么是提示词工程(Prompt) 所谓的提示词其实指的就是提供给模型的⼀个⽂本⽚段,⽤于指导模型⽣成特定的输出或回答。提示词的⽬的是为模型提供⼀个任务的上下⽂,以便模型能够更准确地理解⽤户的意图,并⽣成相关的回应。 2 什么是提示⼯程(Prompt Engineering) 所谓的提…

Windows下安装Git客户端

① 官网地址&#xff1a;https://git-scm.com/。 ② Git的优势 大部分操作在本地完成&#xff0c;不需要联网&#xff1b;完整性保证&#xff1b;尽可能添加数据而不是删除或修改数据&#xff1b;分支操作非常快捷流畅&#xff1b;与Linux 命令全面兼容。 ③ Git的安装 从官网…

《灵珠觉醒:从零到算法金仙的C++修炼》卷三·天劫试炼(35)山河社稷图展开 - 编辑距离(字符串DP)

《灵珠觉醒:从零到算法金仙的C++修炼》卷三天劫试炼(35)山河社稷图展开 - 编辑距离(字符串DP) 哪吒在数据修仙界中继续他的修炼之旅。这一次,他来到了一片神秘的山河社稷图,图中有一卷古老的山河社稷图,图面闪烁着神秘的光芒。图前有一块巨大的石碑,上面刻着一行文字…

Spring Cloud 中的服务注册与发现: Eureka详解

1. 背景 1.1 问题描述 我们如果通过 RestTamplate 进行远程调用时&#xff0c;URL 是写死的&#xff0c;例如&#xff1a; String url "http://127.0.0.1:9090/product/" orderInfo.getProductId(); 当机器更换或者新增机器时&#xff0c;这个 URL 就需要相应地变…