C ++中是否有类似List<>
的内容?类似List<string>
的东西,用于存储字符串数组。
答案 0 :(得分:19)
答案实际上是
std::vector<std::string>
std::list
是一个链接列表,而不是像C#&#39; s List<T>
类这样的数组。
E.g。
#include <iostream> // iostream is for cout and endl; not necessary just to use vector or string
#include <vector>
#include <string>
using namespace std;
int main()
{
vector<string> list;
list.push_back("foo");
list.push_back("bar");
for( vector<string>::const_iterator it = list.begin(); it != list.end(); ++it )
cout << *it << endl;
return 0;
}
std::list
类实际上等同于C#的LinkedList<T>
类。
答案 1 :(得分:7)
.NET中的列表不是链接列表。您正在寻找的数据结构是可调整大小的数组。
std::vector<std::string> list;
答案 2 :(得分:0)
C ++有std::vector
模板类,对应于C#的List
。它还有std::list
模板,对应于C#SingleLinkedList
。
必须准备好在C ++中vector
和list
调用项目的复制构造函数。因此,对于每个字符串,您将创建一个副本。
因此,如果您的内存有限,或者您希望在多个集合中存储相同的字符串,则最好使用std::vector<std::string*>
或std::vector<char*>
代替std::vector<string>
。