24

在Java中我可以做到

List<String> data = new ArrayList<String>();
data.add("my name");

我将如何在 C++ 中做同样的事情?

4

2 回答 2

56

使用std::vectorstd::string

#include <vector>  //for std::vector
#include <string>  //for std::string

std::vector<std::string> data;
data.push_back("my name");

请注意,在 C++ 中,您不需要new每次创建对象时都使用。该对象data是通过调用的默认构造函数默认初始化的std::vector。所以上面的代码没问题。

在 C++ 中,原则是:尽可能避免new

如果您在编译时已经知道大小并且数组不需要增长,那么您可以使用std::array

#include <array> //for std::array

std::array<std::string, N> data; //N is compile-time constant
data[i] = "my name"; //for i >=0 and i < N

阅读文档以获取更多详细信息:


C++ 标准库有很多容器。根据情况,您必须选择最适合您的目的的一种。我不可能一一谈论它们。但这里的图表很有帮助(来源):

在此处输入图像描述

于 2013-01-20T16:05:11.987 回答
0

所有组合在一个线向量中 myVec(1,"hello");

于 2013-01-20T16:45:16.593 回答