Как найти значение в двумерном векторе по столбцам?
vector< vector< int > > z(n);
std::find(z[0].begin(), z[0].end(), VALUE) != z[0].end() // это мы ищем в строке 0 элемент VALUE.
А как найти в столбце 1 элемент VALUE? Никак не могу переписать этот фрагмент
Другие языки программирования и технологии
Поиск значения в векторе с помощью std::find C++
На исходном векторе векторов с помощью функции std::find() никак.
Нужно либо пересобрать столбец в новый вектор, и там найти. Либо обойтись без функции std::find() и найти на исходном векторе векторов с помощью цикла.
Нужно либо пересобрать столбец в новый вектор, и там найти. Либо обойтись без функции std::find() и найти на исходном векторе векторов с помощью цикла.
#include < iostream >
#include < windows.h >
#include < vector >
#include < algorithm >
#include < functional >
#include < iomanip >
using namespace std;
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
srand(time(NULL));
system("color 0A");
unsigned size_x = 15,
size_y = 4;
vector < vector < int > > v(size_y);
function < int() > Filler_c = []()
{
int t;
t = -50 + rand() % 101;
return t;
};
function < vector < int >() > Filler = [size_x, Filler_c]()
{
vector < int > str(size_x);
generate(str.begin(), str.end(), Filler_c);
return str;
};
generate(v.begin(), v.end(), Filler);
cout << "Сгенерированная матрица" << endl;
for (auto t : v)
{
for (auto tt : t)
{
cout << setw(5) << tt;
}
cout << endl << endl;
}
int value = 10;
vector < pair < unsigned, unsigned > > w;
cout << "Введите номер столбца для поиска value ";
unsigned nn;
cin >> nn;
for (unsigned p = 0; p < v.size(); ++p)
{
if (v[p][nn] == value)
{
w.push_back(pair < unsigned, unsigned >(nn, p));
}
}
cout << "Индексы всех вхождений искомого элемента" << endl;
for (auto t : w)
{
cout << t.first << " " << t.second << endl;
}
system("pause");
}


#include < windows.h >
#include < vector >
#include < algorithm >
#include < functional >
#include < iomanip >
using namespace std;
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
srand(time(NULL));
system("color 0A");
unsigned size_x = 15,
size_y = 4;
vector < vector < int > > v(size_y);
function < int() > Filler_c = []()
{
int t;
t = -50 + rand() % 101;
return t;
};
function < vector < int >() > Filler = [size_x, Filler_c]()
{
vector < int > str(size_x);
generate(str.begin(), str.end(), Filler_c);
return str;
};
generate(v.begin(), v.end(), Filler);
cout << "Сгенерированная матрица" << endl;
for (auto t : v)
{
for (auto tt : t)
{
cout << setw(5) << tt;
}
cout << endl << endl;
}
int value = 10;
vector < pair < unsigned, unsigned > > w;
cout << "Введите номер столбца для поиска value ";
unsigned nn;
cin >> nn;
for (unsigned p = 0; p < v.size(); ++p)
{
if (v[p][nn] == value)
{
w.push_back(pair < unsigned, unsigned >(nn, p));
}
}
cout << "Индексы всех вхождений искомого элемента" << endl;
for (auto t : w)
{
cout << t.first << " " << t.second << endl;
}
system("pause");
}


Похожие вопросы
- Паскаль! Даны векторы: a={xn}, b={yn}, c={zn}, d={dn}. Построить матрицу К, сторонами которой являются упорядочены в
- Adobe Illustrator перевод из растра в вектор без помощи трассировки, вручную. Как грамотно научиться?
- программа с помощью оператора case (C++)
- Нужна помощь новичку по C++
- Алгоритмы стандартной библиотеки шаблонов. Вектора в C++.
- В c++ в чем отличие std::cout<< и просто cout<<?
- C++ Сортировка в сортировке вектора экземпляров структуры
- C++ Как вывести вектор на экран и вообще обращаться к нему?
- (Borland C++) Неизвестно откуда берет значение. Помогите, кто знает. Заранее спасибо!
- Программка c# нужна помощь