19.第二阶段x64游戏实战-vector容器

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!

本次游戏没法给

内容参考于:微尘网络安全

上一个内容:18.第二阶段x64游戏实战-MFC列表框

vector是一个封装了动态大小数组的顺序容器(添加顺序),也就是说vector是一个数组,这个数组的大小我们不需要管,我们给它数据的时候如果数组个数不够了vector自己会扩容直到内存满了,它可以存放各种类型的对象

vector后面会经常用到,所以这里写一下怎么添加数据、删除数据、获取数据

然后写一个实例,首先打开Visual Studio 2022,然后创建新项目

然后选择控制台应用

然后设置代码存放目录,然后点击创建

点击了创建就会出现下图的内容

然后写代码:

#include <iostream>
#include <vector>// 引入vector

int main()
{
    std::vector<int> intVector;// 创建一个vector容器
    printf("数量=%d\n", (int)intVector.size()); // 获取vector的大小,也就是它里面有一个数据
    printf("\n");
    intVector.push_back(1);// 添加数据
    intVector.push_back(2);
    intVector.push_back(3);
    intVector.push_back(4);
    printf("数量=%d\n", (int)intVector.size()); // 获取vector的大小,也就是它里面有一个数据
    printf("\n");
    for (int i = 0; i < intVector.size(); i++) {
        printf("第一种方式获取vector里的内容:%d\n", intVector[i]); // 使用数组的方式获取vector里的数据
    }
    printf("\n");

    /**
        intVector.begin() 获取第一个位置上的数据
        intVector.end() 获取最后一个位置上的数据

        auto是任意类型,给它赋值的数据是什么类型它就是什么类型
    */

    for (auto i = intVector.begin(); i != intVector.end(); i++)
    {
        printf("第二种方式获取%d\n", *i);
    }
    printf("\n");
    intVector.erase(intVector.begin() + 2);// 删除指定位置的数据,这里删除的是第三个数据
    for (auto i = intVector.begin(); i != intVector.end(); i++)
    {
        printf("第三种方式获取%d\n", *i);
    }

    intVector.clear(); // 清空所有数据

    for (auto i = intVector.begin(); i != intVector.end(); i++)
    {
        printf("测试clear清空\n");
    }
}

效果图:


img

### 关于说话人识别中的X-vector与R-vector #### X-vector技术原理及应用 在现代说话人识别系统中,X-vector作为一种高效的特征表示方法被广泛应用。该方法通过深层神经网络(DNN)来抽取语音信号的固定长度嵌入向量——即所谓的X-vectors。此过程涉及移除已训练好模型的最后一层Softmax层,仅保留其用于特征抽象的部分[^1]。 ```python import torch.nn as nn class DNNForXVector(nn.Module): def __init__(self, input_dim, hidden_dims, embedding_size): super(DNNForXVector, self).__init__() layers = [] prev_dim = input_dim for dim in hidden_dims: layers.append(nn.Linear(prev_dim, dim)) layers.append(nn.ReLU()) prev_dim = dim # Embedding layer without softmax self.embedding_layer = nn.Sequential(*layers, nn.Linear(hidden_dims[-1], embedding_size)) def forward(self, x): return self.embedding_layer(x) model = DNNForXVector(input_dim=..., hidden_dims=[...], embedding_size=...) output_embeddings = model(speech_input) ``` 随后,利用这些由DNN产生的Embeddings作为输入数据去训练概率线性判别分析(PLDA)模型来进行最终的身份验证或辨识工作。值得注意的是,在整个流程里除了最开始阶段采用不同的算法获取特征外,后续处理步骤基本保持一致。 #### R-vector简介及其潜在优势 相比之下,“R-vector”的概念并不像X-vector那样广为人知。实际上,“R-vector”并不是一个标准术语;然而,在某些文献中可能指代一种特定类型的残差连接(residual connection),它允许更深层次的信息传递从而增强模型性能。这种设计可以提高模型对于长时间依赖性的捕捉能力以及对抗过拟合现象的效果。不过需要注意的是,并非所有研究都将此类结构称为“R-vector”。 如果确实存在针对某种具体实现方式下的所谓“R-vector”,那么这通常意味着在此基础上构建起来的新颖架构能够更好地适应复杂多变的实际应用场景需求。例如: - 更加鲁棒地应对噪声环境; - 提升跨语种识别准确性; - 改善低资源条件下系统的泛化表现等特性。 但是由于缺乏统一定义,因此建议查阅原始论文以获得更加确切的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值