在 C++ 中创建一个类似于 python 的列表

Create a python like list in c++

我有一个 python 脚本,我必须用 c++ 翻译,我的 python 脚本的 80% 基于列表。

我有一个我读取的文件,并将该文件的数据放在一个列表中:

//Code to translate in c++
bloc = [line]
for b in range(11):
    bloc.append(lines[i + 1])
    i += 1

我用这些数据做我的东西,然后我再做一次,直到我读完整个文件。

最后我希望能够通过以下操作获取此列表的数据:

#Python script
var = bloc[0, 1, 2, 3 ...]

我会回答您需要更多信息的任何问题

最接近 python List 的 C++ 容器是 std::vector。然而与 python 相反, std::vector 只包含一种类型的元素。您必须声明向量将包含什么。 在您的情况下,它将是 std::string(从文件中读取)。

所以:

std::vector<std::string> cpp_list; // container for lines (stored as string )from the file 

等同于pythonpython_list = [] 应该让你开始。

使用 std::vector 时,您不需要预先分配存储空间,但出于性能原因,最好提前知道所需的大小。

  • 如果你使用 cpp_list.reserve(something) 或者不做任何内存分配,你必须使用 cpp_list.push_back(...) 推入向量,这类似于 pyhton_list.append(...)
  • 如果您预先分配内存,例如:std::vector<std::string> cpp_list(nb_lines) 您必须使用 python 中的索引,例如 cpp_list[3] = something