在 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
我有一个 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