Я относительно новичок в программировании и сейчас изучаю C++. Я сомневаюсь, что моя логика в этом вообще верна, но вот что я пытался выяснить:
У меня есть простая программа, которая выводит размер и содержимое вектора;
vector<int> v1;
vector<int> v2(10);
vector<int> v3(10, 42);
vector<int> v4{ 10 };
vector<int> v5{ 10, 42 };
vector<string> v6{ 10 };
vector<string> v7{ 10, "hi" };
//and so on...........
bool firstPass= true;
for (auto i : v3){
if (firstPass) cout << "Vector size: " << v3.size() << ".\nElements: " << i << ", ";
cout << i << ", ";
firstPass= false;
}
Если я хочу перебрать другой вектор, мне нужно вручную изменить v3 на vX, но я бы хотел, чтобы этот фрагмент кода прошел через все векторы.
Я пробовал несколько методов, таких как создание vector<string> V8{"v1","v2","v3"..}
for (auto i : V8[counter])
но, по сути, я потерпел неудачу, потому что "v1" != v1. (Именно здесь я получил идею "преобразовать строку в вектор", но что-то подсказывает мне, что это не тот способ сделать это...)
Любая помощь и критика будут очень признательны, и я приношу извинения, так как это, вероятно, будет подано как слишком конкретное или даже бесполезное, учитывая, что мой способ решить эту проблему, вероятно, ошибочен, и я задал неправильный вопрос!
vector<vector<int>> = { { }, {10}, {10,42}, {10}, {10,42} };
. Затем вы можете выполнять итерацию, используя вложенные циклыfor
. Но вы не можете так легко смешивать строки — у вас может быть отдельныйvector<vector<string>>
, или вы можете создать уровень абстракции, используя варианты (boost::any
,boost::variant
, полиморфную иерархию среды выполнения для векторов)... это, вероятно, выходит за рамки того, что вы Готовы написать. - person Tony Delroy   schedule 06.08.2014vector<vector<int>>
без необходимостиvectorOfVectors.push_back(vectorName)
для каждого вектора? Следующий код будет каждый раз записывать v1,v2,v3 вместоvectorName
, но это будут строки и, следовательно, неправильного типа:vectorOfVectors.push_back("v"+to.string(counter)) counter++;
- person Boop   schedule 06.08.2014dlsym()
, но он работает только с глобальными переменными. - person jxh   schedule 06.08.2014