std::string Get() { /// Приводим this к A* и вызываем Get, удаляя первый символ return ( ( A* ) this ) -> Get () .erase (0, 1); }
struct B : public A
{
/// Переопределяем метод Get
std::string Get()
{
return A::Get () .erase (0, 1);
}
};
for (size_t i = 0; i <= data.size() / 8; ++i) { ... for (int j = 0; j < 8; ++j) if (data[i * 8 + j]) ... }
for (size_t i = 0; i < (data.size() + 7) / 8; ++i)
{
...
for (int j = 0; j < std::min(8, data.size() - i * 8); ++j)
if (data[i * 8 + j])
...
}
можно ли вызвать функцию из конструктора класса?
Students::Students(std::string name, std::string last_name) { Students::set_name(name); // Вызываем(создаем) функцию с фактическим параметром Students::set_last_name(last_name); // тоже самое. Можно ли так делать? }
class Students
{
...
std::string name_;
std::string last_name_;
...
};
Students::Students(const std::string& name, const std::string& last_name): name_(name), last_name_(last_name)
{
}
char hmac[40];
auto scan_count = sscanf(cookie.c_str(), cookie_format, &uid, &hmac);
На входных данных:
uid=20364-726552704a0366dc3e0ca627e6ebacdeb8ecff70
получаем следующее:
uid=20224 hmac=726552704a0366dc3e0ca627e6ebacdeb8ecff70
char mass[50]
mass[i++] = *(entry->d_name);
for( i = 0; i < j; ++i)
{
printf("%s\n", &mass[i]);
}
Как измерить количество операций, выполняемых процессором во время исполнения определенной программы с заданным алгоритмом под linux?
$ perf stat ls
...
Performance counter stats for 'ls':
2.287765 task-clock # 0.666 CPUs utilized
36 context-switches # 0.016 M/sec
0 cpu-migrations # 0.000 K/sec
283 page-faults # 0.124 M/sec
3,555,075 cycles # 1.554 GHz [67.11%]
2,620,681 stalled-cycles-frontend # 73.72% frontend cycles idle [78.12%]
2,041,963 stalled-cycles-backend # 57.44% backend cycles idle
1,807,743 instructions # 0.51 insns per cycle
# 1.45 stalled cycles per insn
356,700 branches # 155.916 M/sec
14,920 branch-misses # 4.18% of all branches [58.70%]
0.003432740 seconds time elapsed
bool call(QObject *qo, QMetaMethod metaMethod, void **data) {
QGenericReturnArgument returnArgument(metaMethod.typeName(), data);
bool ok = metaMethod.invoke(qo, Qt::DirectConnection, returnArgument);
if(ok) {
QLayout *layout = reinterpret_cast<QLayout *>(*data); // Всё ок
qDebug() << layout ->metaObject()->className(); // QLayout
}
return ok;
}