Я пытался узнать больше о C#, поэтому я немного практиковался со списками:
static void Main()
{
List<List<int>> a = new List<List<int>>();
List<int> temp = new List<int>();
temp.Add(1);
a.Add(temp);
for (int i = 0; i < 9; i++)
{
temp.Clear();
temp.Add(1);
for (int q = 0; q < a[i].Count-1; q++)
{
temp.Add(a[i][q] + a[i][q+1]);
}
temp.Add(1);
a.Add(temp);
}
foreach (var i in a[8])
Console.Write(i + " ");
Console.WriteLine();
}
Я преобразовал это в C ++, и он отлично работает. Однако в C# a [i] .Count равно всегда 1. Хотя после первого l oop размер должен быть 2.
Я могу только предположить, что есть некоторое существенное различие между вектором C ++ и списком C#, которое я, по-видимому, пропустил. Есть идеи?
Вот работающий код C ++:
int main()
{
std::vector<std::vector<int>> a;
std::vector<int> b;
b.push_back(1);
a.push_back(b);
for (int i = 0; i < 9; i++)
{
b.clear();
b.push_back(1);
for (int q = 0; q < a[i].size()-1; q++)
{
b.push_back(a[i][q] + a[i][q+1]);
}
b.push_back(1);
a.push_back(b);
}
for (auto i : a[8])
{
std::cout << i << ' ';
}
}
Вывод для кода C ++:
1 8 28 56 70 56 28 8 1
Вывод для C# Код:
1 1
Любая помощь приветствуется, спасибо!