Я объявляю глобальную переменную, first_clauses
:
vector<vector<int>> first_clauses; //clauses for first iteartion
Теперь cnf_transformation
является одной из функций программы:
void cnf_transformation(vector<vector<string>> gates, vector<vector<int>> first_clauses)
{
for (int i = 0; i < gates.size(); i++)
{
if (gates[i][1] == "AND" || gates[i][1] == "and")
{
vector<int> cl;
cl.push_back(-1 * umap_toInt[gates[i][2] + "_a_1"]);
cl.push_back(-1 * umap_toInt[gates[i][3] + "_a_1"]);
cl.push_back(umap_toInt[gates[i][0] + "_a_1"]);
first_clauses.push_back(cl);
cl.clear();
cl.push_back(umap_toInt[gates[i][2] + "_a_1"]);
cl.push_back(-1 * umap_toInt[gates[i][0] + "_a_1"]);
first_clauses.push_back(cl);
cl.clear();
//many more lines are there
}
Я хочу sh некоторые обязательные данные в глобальной переменной first_clauses. Итак, я звоню cnf_transformation
и мой второй аргумент - first_clauses
:
cnf_transformation(gates, first_clauses);
Теперь, когда я печатаю структуру данных first_clauses
внутри моей функции, она на самом деле хранит данные, но после прихода вне функции моя глобальная переменная first_clauses
не обновляется. Я все еще изучаю C ++. Пожалуйста, ведите меня.