gpt4 book ai didi

c++ - 我应该删除 vector 吗?

转载 作者:行者123 更新时间:2023-11-28 01:27:40 25 4
gpt4 key购买 nike

我有以下代码来传递浮点 vector 的值。该 vector 保存音频数据。但是,接收对象需要一个临时 vector ,所以我将 float 转换为短裤,然后传递这个 vector :

HRESULT CApp::PassAudio(ISpTTSEngineSite * pOutputSite, const SPVTEXTFRAG * uFragList, vector<float>&uFloats,int &uSamplesWritten)
{
vector<short>nShortsFromFloats;
nShortsFromFloats.resize(uFloats.size());

for (int i = 0; i < (int)uFloats.size(); i++)
{
nShortsFromFloats[i] = (int)(uFloats[i] * 32767);
}

//Pass the audio (shorts now!) back to the requesting site
ULONG iSizeShorts = nShortsFromFloats.size();
uSamplesWritten += (iSizeShorts * 2);
HRESULT hr;
hr = pOutputSite->Write((short *)&nShortsFromFloats[0], (iSizeShorts * 2), NULL);

if (hr == S_OK)
{
//fine :-)
}
else
{
//some warning
}

return hr;
}

我想知道之后是否需要删除 vector ,或者这是否自动完成。

我不确定还需要哪些其他信息。我在 DLL 中使用此代码。

谢谢。

最佳答案

new 没有分配任何内容,因此没有要delete 的内容。 vector 将在函数退出时超出范围时自动销毁。

关于c++ - 我应该删除 vector<short> 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53074504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com