auto view = vec
| std::ranges::views::transform(
[](auto x) { return fmt::format("{}\n", x); })
| std::ranges::views::join;
std::ranges::copy(view, std::ostream_iterator<int>(std::cout));
std::cin
, то это будет работать жутко медленно.cin
читает в свой внутренний буфер сразу, скажем, 4096 байт, и потом отдаёт тебе из буфера по одному символу, которые ты у него запрашиваешь. Нетрудно заметить, что работать это будет (в моём примере) где-то в 4096 раз быстрее.flush
, то, что ты вывел в поток, находится в буфере. cout
ждёт, пока ты докинешь ему ещё байтиков, чтобы вывести всё потом большим куском. Если же ты хочешь, чтобы вывод произошёл прямо сейчас, то нужен flush
. \r
перемещает вывод на начало последней строки, при этом дальнейший вывод идёт поверх неё, что нам и нужно. Так что: считываем строку, меняем её, как душе угодно, выводим \r
, выводим модифицированную строку. std::string
и std::unique_ptr<Person>
. Создать указатель на наследника можно так:static_cast<std::unique_ptr<Person>>(std::make_unique<Formalist>())
Type
выкинуть, а для получения информации, специфичной для наследника, использовать виртуальные функции. тип arr[размер];
(сырые массивы). Иначе — боль и страдания. Массив = vector<int>
(Ну или там double
, или что там. Туториал по vector легко загуглишь.)string
(нужен #include <string>
)sizeof
вообще про другое, и новичку он понадобиться не может. Вместо него: string.size()
for (const char c : str) {
...
}
std::vector<int> row = ...;
std::unordered_map<int, size_t> counts;
for (int x : row) ++counts[x];
size_t n_duplicates = row.size();
for (auto p : counts) {
if (p.second == 1) --n_duplicates;
}
std::list
, а std::vector
в C++.std::unique_ptr
из #include <memory>
.std::vector<std::unique_ptr<Figure>> figures;
std::vector<std::unique_ptr<Decoration>> decorations;
figures.push_back(std::make_unique<Ball>(аргументы для конструктора Ball));
figures[0]->какой-нибудь метод Figure
virtual ~Figure() = default;
+ для Decoration.const auto i = std::complex<double>(0, 1);
MyWindow
— это твой контроллер, который ты написал собственными руками. В нём тебе предлагается использовать кодогенерированную вьюху UI::MyWindow
(другой класс!), которую написала за тебя Qt по указаниям из файла `.ui` от QtDesigner. Как именно использовать? UI::MyWindow
хранится в MyWindow
в поле ui
. std::string s = "hi!";
s = 42;
s = std::to_string(42);
std::any x = 42;
x = "wut";
x = std::pair{1, 'A'};
std::cout << std::any_cast<std::pair<int, char>>(x).first;
double res = x OPERATOR y;
int a = 1;
int b = 2;
*(&a + 1) = 42;
*(&a + 2 - 2) = 42; // UB