在C++中列出<string>

Mah*_*ari 5 c++ arrays string list

我对C#很酷,但我是C++的新手.我搜索但发现许多不同的解决方案,大多数不起作用可能是因为有不同版本的C++.

我正在使用turbo C++ 4.5,我想要类似C#的字符串列表

List<string> s = new List<string>();
s.Add("1");
Run Code Online (Sandbox Code Playgroud)

我对C++数组有点了解,但我不知道声明时的项目数,这就是为什么我想要类似List的解决方案,以便我可以声明一次并稍后添加项目.

有人告诉我,我应该使用指针,但我不知道如何.可能吗?还是有什么办法吗?

请你解答一下,因为我真的很想学习,谢谢.

Dav*_*nan 15

相当于C#List<T>std::vector<T>.与C#代码对应的C++代码如下:

using namespace std;
....
vector<string> s;
s.push_back("1");
Run Code Online (Sandbox Code Playgroud)

你不应该接受建议为自己写一个这样的课程.如果合适,请始终使用标准容器.

  • @Ivaylo std :: vector具有随机访问O(1).但是std :: list是一个链表.C#List <T>命名错误.它是一个矢量/数组容器而不是链表. (4认同)
  • 你为什么说等效是`std:vector`?`std::list` 确实支持推回。我不是 c# list 的专家,但如果它的 `List` 在任何时候都不支持插入,而 `std::vector` 不(有效),我会感到惊讶。 (2认同)
  • @DavidHeffernan是正确的,std :: list <>和LinkedList <>更相同.(实际上,std :: forward_list <>可能). (2认同)