返回 C++ 中的字符串数组

return string arrays in c++

本文关键字:字符串 数组 C++ 返回      更新时间:2023-10-16

我是 c++ 的新手,在尝试在 go 中开发后,我想不妨学习 c++,因为当我开始进入抽象层的那一刻,学习曲线会非常陡峭 我习惯于在 php 中轻松处理动态数组,但我无法理解指针、内存分配以及与 c++ 相关的范围问题这是我的第一次尝试:

string* Deck() {
// array of card rank and vlaue, seperated by a period, used as a delimiter for evaluting the players hands
string* Deck = new string[52] ;
Deck = {
"A.H","2.H","3.H","4.H","5.H","6.H","7.H","8.H","9.H","10.H","J.H","Q.H","K.H",
"A.S","2.S","3.S","4.S","5.S","6.S","7.S","8.S","9.S","10.S","J.S","Q.S","K.S",
"A.D","2.D","3.D","4.D","5.D","6.D","7.D","8.D","9.D","10.D","J.D","Q.D","K.D",
"A.C","2.C","3.C","4.C","5.C","6.C","7.C","8.C","9.C","10.C","J.C","Q.C","K.C",
};
return Deck;
}
int main()
{
string* Deck = Deck();
cout << *Deck[23] << endl;
return 0;
}

编译器给了我各种错误,我尝试过简单地返回指针,但我在本文中发现了范围 在函数中返回字符串数组C++

有很多关于int作为数据类型的文章,但stringsint=>string解释很少见,因为我想每个人都认为即使是菜鸟也可以解决问题,但我看了无数小时的 youtube 视频,但仍然无法完全弄清楚。谢谢。

"我习惯于轻松处理 php 中的动态数组,但我无法理解与 c++ 相关的指针、内存分配和范围问题">

在处理动态数组时,您不需要像在PHP中那样处理C++中的"指针、内存分配和范围问题"。

只需使用 std::vector,它就会为您管理数组:

std::vector<std::string> GetDeck() {
// array of card rank and vlaue, seperated by a period, used as a delimiter for evaluting the players hands
std::vector<std::string> Deck =
{
"A.H","2.H","3.H","4.H","5.H","6.H","7.H","8.H","9.H","10.H","J.H","Q.H","K.H",
"A.S","2.S","3.S","4.S","5.S","6.S","7.S","8.S","9.S","10.S","J.S","Q.S","K.S",
"A.D","2.D","3.D","4.D","5.D","6.D","7.D","8.D","9.D","10.D","J.D","Q.D","K.D",
"A.C","2.C","3.C","4.C","5.C","6.C","7.C","8.C","9.C","10.C","J.C","Q.C","K.C",
};
return Deck;
}
int main()
{
auto Deck = GetDeck();
std::cout << Deck[23] << 'n';
}