std::size_t r = 0, c = 0;
std::cin >> r >> c;
std::vector<std::vector<int>> matrix(r, std::vector<int>(c));
for (std::size_t i = 0; i < c; ++i)
for (std::size_t j = 0; j < r; ++ j)
cin >> matrix[j][i];
ostream& operator<< (ostream& os, const Foo &o)
, где Foo -- это ваш класс. Ну а если вам класс необходимо приводить к строковому представлению, то да, придётся вам реализовать метод руками, или же, что архитектурно более правильно, сделать отдельный класс и/или функцию для преобразования. std::vector<std::string> presents {"паук", "носок", "iPhone 11 Pro", "книга по С++", "футбольный мяч", "флешка", "билет в кино", "наручные часы", "кефир"};
std::random_device rd;
std::mt19937 g(rd());
std::shuffle(presents.begin(), presents.end(), g);
std::size_t boxNumber = 0;
std::cin >> boxNumber;
std::cout << presents[boxNumber] << std::endl;
Почему все так рьяно говорят о том, что C++ ужасен и не нужен, но при этом он стабильно входит в топ 10 яп?
#include <vector>
template <class T>
using Matrix = std::vector<std::vector<T>>;
// ...
template <class T>
void print(const Matrix<T> &matrix)
{
for (auto &&r : matrix) {
for (auto &&e : r) {
std::cout << e << " ";
}
std::cout << std::endl;
}
}
// ...
Matrix<int> m = {
{1, 2, 3},
{5, 6, 7, 8},
{9, 10}
}
print(m);
int v1 = 1;
float v2 = 2.4;
printf("My message %i with some data %f", v1, v2);
using Map = std::vector<std::vector<char>>;
Map map = {
{1, 1, 1},
{0, 1, 0},
{0, 1, 0},
};
// ...
void scaleMap(Map &map, int coefficient)
{
// ...
Map newMap(newSize, std::vector<char>(newSize));
// ...
map.swap(newMap);
}