C ++在C#中有什么类似List <string>的东西吗?</string>

时间:2011-06-12 06:57:25

标签: c# c++

C ++中是否有类似List<>的内容?类似List<string>的东西,用于存储字符串数组。

3 个答案:

答案 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 ++中vectorlist调用项目的复制构造函数。因此,对于每个字符串,您将创建一个副本。

因此,如果您的内存有限,或者您希望在多个集合中存储相同的字符串,则最好使用std::vector<std::string*>std::vector<char*>代替std::vector<string>