在Java中我可以做到
List<String> data = new ArrayList<String>();
data.add("my name");
我将如何在 C++ 中做同样的事情?
使用std::vector
和std::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++ 标准库有很多容器。根据情况,您必须选择最适合您的目的的一种。我不可能一一谈论它们。但这里的图表很有帮助(来源):
所有组合在一个线向量中 myVec(1,"hello");