我正在尝试将以下Python代码移植到C++:
- foo.py*
import settings.consts as consts
table = [""] * consts.table_size
for idx in range(0, consts.table_size):
str = consts.lookup[get_by_index(idx)]
table[idx] = str
def use_table(index):
return table[index]
它初始化一次表的大小从设置中获得。然后在for
循环中用值填充表。use_table
是一个简化的函数,它消耗表。
以下是我在C++中的尝试:
- foo.h*
#ifndef FOO_H
#define FOO_H
#include <vector>
#include <string>
#include "consts.h"
namespace bar {
std::vector<std::string> table(consts::size_of_table, "");
int GetByIndex(int a);
string UseTableable(int index);
} // namespace bar
#endif // FOO_H
- foo.cc*
string UseTableable(int index)
{
return table[index];
}
问题是
据我所知,在C++中,for
循环必须在一个函数中。我可以创建一个函数来填充向量,但是我应该什么时候调用它呢?命名空间没有构造函数,也没有初始化钩子。
与原始Python代码等效的架构师是什么?
2条答案
按热度按时间kpbwa7wx1#
当您要初始化向量时,可以呼叫函式。
你可以使用lambda函数
或命名函数,
kcugc4gi2#
你可以在程序的
main()
函数中进行初始化,例如:foo.h
foo.cpp
main.cpp