void bubble_sort(int array[SIZE])
{
int transfer = 0;
int comparison = 0;
cout << "\nпузырьковая сортировка" << endl;
for (int i = 0; i < SIZE-1 ; i++)
{
for (int j = SIZE-2; j >= i; j--)
{
comparison++;
if (array[j] > array[j+1])
{
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
transfer++;
}
}
}
cout << "СРАВНЕНИЕ " << comparison << endl;
cout << "ПЕРЕСЫЛКА " << transfer << endl;
}
макросы в С++
#include <iostream>
template<typename T>
auto sqr = [](T x)
{
return x * x;
};
int main()
{
std::cout << sqr<int>(3 + 0);
}
//...
class __lambda_3_12
{
public: inline int operator()(int x) const
{
return x * x;
}
//...
};
//...
-I<path header files>
в команду запуска компилятора.-L<path to lib files>
. Если библиотечный файл один, то этот пункт можно пропустить и задать полный путь в п.3. Если файлов несколько, то проще задать путь к каталогу в опции -L, а в п.3 указывать только имя конкретного файла библиотеки.-l<lib name>
или полный путь к lib файлу.INCLUDEPATH += -Ipath/to/header/files
LIBS += -Lpath/to/lib/files -lmylibfile
получается mainx узнает о том что есть функция printx() на этапе линковки [mainx.o] и [printx.o]?
Каким образом происходит передача информации в [mainx] что функция printx() существует?
objdump -dr mainx.o
...
0000000000000000 <main>:
0: 55 push %rbp
...
3a: 89 c7 mov %eax,%edi
3c: e8 00 00 00 00 callq 41 <main+0x41>
3d: R_X86_64_PLT32 _Z6printxi-0x4
41: b8 00 00 00 00 mov $0x0,%eax
46: c9 leaveq
47: c3 retq
...
readelf -a mainx.o
...
Relocation section '.rela.text' at offset 0x580 contains 12 entries:
Offset Info Type Sym. Value Sym. Name + Addend
...
00000000003d 001400000004 R_X86_64_PLT32 0000000000000000 _Z6printxi - 4
...
Symbol table '.symtab' contains 25 entries:
Num: Value Size Type Bind Vis Ndx Name
...
20: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND _Z6printxi
...
readelf -a printx.cpp
...
Symbol table '.symtab' contains 24 entries:
Num: Value Size Type Bind Vis Ndx Name
...
14: 0000000000000000 75 FUNC GLOBAL DEFAULT 1 _Z6printxi
...
import java.util.Arrays;
public class Test {
public static void main(String[] args){
int[] tab = {12, 1, 21, 8};
int min = Arrays.stream(tab).min().getAsInt();
int max = Arrays.stream(tab).max().getAsInt();
System.out.println("Min = " + min);
System.out.println("Max = " + max)
}
}
std::system("export myvar=1");
std::system("echo $myvar");
#include<stdio.h>
struct tableI
{
char *name[4];
float doctor[16];
float bunk[16];
} tableI;
int main()
{
struct tableI a;
a.name[0] = "РСФСР";
a.name[1] = "Украина";
a.name[2] = "Латвия";
a.name[3] = "Эстония";
// и т.д. ...
printf("%s|%s|%s|%s", a.name[0],a.name[1],a.name[2],a.name[3]);
}
int value = // ваше число, чему-то там равно, вам виднее
int bit = // номер вырезаемого бита, тоже вам виднее
int maskLower = 0;
for (int i = 0; i < bit - 1; i++) {
maskLower |= 1 << i;
}
int maskUpper = ~maskLower;
value = ((value >> 1) & maskUpper) | (value & maskLower);