cout << static_cast<int>(arr[i][z]) << endl;
#include <iostream>
'\n'
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
cout << arr[i][j] << ' '; // пробел можно убрать
}
cout << '\n';
}
system
. Она приостанавливает вашу программу, и запускает другую (в данном случае pause
). Такой вариант не только не оптимальный, но ещё и платформозависимый. Людям, которые используют mac или linux придётся вносить изменения в ваш код, чтоб запустить его, так как в этих ОС нет команды pause
. Используйте для этого средства языка C++: cin.get();
если я правильно понял знак хранится в первом бите
Дополнительный код позволяет заменить операцию вычитания на операцию сложения и сделать операции сложения и вычитания одинаковыми для знаковых и беззнаковых чисел, чем упрощает архитектуру ЭВМ.
sfdisk -d /dev/sda > sda.dump
sfdisk /dev/sda < sda.dump
// Так, если хотите, чтоб они указывали на одну область:
Number& operator = (const Number& other)
{
delete val;
this->val = other.val;
return *this;
}
// Так, если должна создаваться копия значения:
Number& operator = (const Number& other)
{
delete val;
this->val = new float(*(other.val));
return *this;
}
operator=
должен возвращать ссылку на левый операнд. void foo(int** arr)
{
/* do something */
}
...
int** array = new int[m];
for (size_t i = 0; i < m; ++i)
{
array[i] = new int[n];
}
foo(arr);
for (size_t i = 0; i < m; ++i)
{
delete[] array[i];
}
delete[] array;
#include <iostream>
using namespace std;
void foo(int* x) {*x = 7;}
int main(int argc, char** argv)
{
int x = 0;
foo(&x);
cout << x << endl;
return 0;
}
#include <iostream>
using namespace std;
void foo(int& x) {x = 7;}
int main(int argc, char** argv)
{
int x = 0;
foo(x);
cout << x << endl;
return 0;
}
g++ -S ptr.cpp
g++ -S ref.cpp
diff ptr.s ref.s
ctime
, а не time.h
#include <random>
...
std::random_device rd;
std::cout << rd() % 10;
void fill_with_random(int* arr, size_t n)
{
random_device rand;
for (size_t i = 0; i < n; ++i)
{
arr[i] = rand() % 21 - 10;
}
}
cout << y[0][0]; //все прекрасно выводится
/*но если попробовать сделать y[0][0]+=1; то выводится ошибка "выражение должно быть допустимым для изменения левосторонним значением"*/
int operator [](int i)
{
return x[i];
}
int& operator [](int i)
{
return x[i];
}
int operator [](int i)
{
return y[i][0]; /*совершенно непонятно, какую роль здесь играет [0], и почему не работает с просто return y[i]... при изменении [0] на любое другое число, результат не меняется...*/
}
massiv& operator [](int i)
{
return y[i];
}
class Matrix
{
public:
Matrix() {}
int* operator[] (size_t i)
{
return &arr[i][0]; // Указатель на первый элемент i-ой строки.
}
private:
int arr[5][5];
}
cout << sqrt(n) << endl;
endl
. После каждого вычисления вы зачем-то сбрасываете поток вместо того, чтоб просто вывести символ перевода на новую строку '\n'
.math.h
, а в C++ - cmath
. И зачем вы используете while вместо for?#include <cstdint>
...
for (uint64_t i = 0; i < UINT64_MAX; ++i)
#include <iostream>
#include <sstream>
#include <string>
#include <thread>
#include <mutex>
#include <chrono>
#include <cmath>
#include <cstdint>
using namespace std;
mutex ios_mutex;
void compute(int b, int e)
{
stringstream buffer;
for (uint64_t i = b; i < e; ++i)
{
buffer << sqrt(i) << '\n';
}
ios_mutex.lock();
cout << buffer.str();
ios_mutex.unlock();
}
int main(int argc, char** argv)
{
thread t0(compute, 0, 99);
thread t1(compute, 100, 199);
thread t2(compute, 200, 299);
thread t3(compute, 300, 399);
thread t4(compute, 400, 499);
thread t5(compute, 500, 599);
thread t6(compute, 600, 699);
thread t7(compute, 700, 799);
t0.join();
t1.join();
t2.join();
t3.join();
t4.join();
t5.join();
t6.join();
t7.join();
return 0;
}
(?![@param*])((?:"[^"]+")|(?:[\S]+))
(?![@param*])((?:"(?:(?:\\")|(?:[^"]))+")|(?:[\S]+))
def depth(arr):
if hasattr(arr, '__getitem__'):
return max(depth(i) for i in arr) + 1
else:
return 0
def depth(arr):
if hasattr(arr, '__getitem__'):
return max(map(depth, arr)) + 1
else:
return 0