gpt4 book ai didi

c++ - 在 C++ 中使用显式/原始指针

转载 作者:太空狗 更新时间:2023-10-29 20:16:42 25 4
gpt4 key购买 nike

我读到在 C++ 中使用原始指针是不好的。相反,我们应该使用 auto_ptr。在下面的代码中,我在 foo() 中填充了一个 vector ,它是在 main() 中创建的。我做得对吗?或者有没有更好的方法可以不使用显式指针。

#include <iostream>
#include <vector>
#include <string>

using namespace std;

void foo(vector<string> *v){

(*v).push_back(" hru");
}

int main(){
vector<string> v;
v.push_back("hi");
foo(&v);
for(int i=0;i<v.size(); i++){
cout << v[i];
}

}

最佳答案

C++ 使用引用 来实现你想要做的事情:

#include <iostream>
#include <vector>
#include <string>

using namespace std;

void foo(vector<string>& v){
v.push_back(" hru");
}

int main(){
vector<string> v;
v.push_back("hi");
foo(v);
for(int i=0;i<v.size(); i++){
cout << v[i];
}
}

引用和指针很相似,有一个非常重要的区别:没有空引用(Constructing one 在C++ 中是Undefined Behavior 你可以构造一个,但是这样做被认为是黑客攻击 )。

关于c++ - 在 C++ 中使用显式/原始指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8838859/

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