gpt4 book ai didi

c++ - 当调用它的函数结束时,防止我的 vector 被删除

转载 作者:行者123 更新时间:2023-11-27 23:36:15 24 4
gpt4 key购买 nike

我的类(class)有一个变量
map<string, vector<int> > base_

我有一个创建零 vector 的函数,然后将该 vector 索引到 base_[string c] 并对 base_[c] 进行一些更改,但我无法访问 base_[c] 之外的任何值这个函数范围,即使使用类中的函数。我相信只要函数结束,vector 就会被删除。当我的函数结束时,如何防止 vector 被删除?

void Index::AddFile(string c, int n, int j){
vector<int> vi(n, 0);
vector<string> vc = Conv(c);
Form(vc);
cout<<"j e "<<j<<endl;
for(int i=0;i<vc.size();i++){
if(base_.count(vc[i])==0){
for (int k=0; k<n; k++){
this->base_[vc[i]].push_back(vi[i]);
}
this->base_[vc[i]][j] = 1;
} else {
this->base_[vc[i]][j]++;
}
}
}

最佳答案

如果您想保留 vector ,请将其设为类成员而不是局部函数变量。变量在超出范围时会被销毁。

关于c++ - 当调用它的函数结束时,防止我的 vector 被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58998869/

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