Ralph
template <typename Iter>
void reverse(Iter begin, Iter end) {
while ((begin != end) && (begin != --end)) {
std::iter_swap(begin++, end);
}
}
Ralph
std::unique_ptr<int> a{ new int(1) }, b{ new int(2) }, c{ new int{3} };
std::vector<std::unique_ptr<int>> v;
/* add a,b and c to vector v */
/* TODO: Write your code here */
/* call reverse */
::nc_reverse(v.begin(), v.end());
for (auto& p: v)std::cout << *p<<",";
std::cout << "\n";
Ralph
Oh, and i am trying to add the unique_ptr values to the vector using pushback, but is is saying build failed, without any error
Anonymous
Can you tell me why the error appears?
#include <stdio.h>
#include <locale.h>
#include <stdlib.h>
#include <locale.h>
//int** osvob_memory(int n, int m, int );
void vvod(int, int, int);
void vivod(int, int, int**);
int** memory(int n, int m);
void sort(int, int, int );
int main(void)
{
setlocale(LC_CTYPE, "RUSSIAN");
int n, m;
int a;
puts("Введите размер массива n [n][m]");
scanf_s("%d", &n);
puts("Введите размер массива m [n][m]");
scanf_s("%d", &m);
a = memory(n, m);
vvod(n, m, a);
vivod(n, m, a);
sort(n, m, a);
vivod(n, m, a);
//osvob_memory(n, m, a);
return 0;
}
int memory(int n, int m)
{
int pp;
int i, j;
pp = (int**)malloc(sizeof(int*) * n);
for (i = 0; i < n; i++)
{
*(pp + i) = (int*)malloc(sizeof(int) * m);
}
return (pp);
}
void vvod(int n, int m, int** mm)
{
int i, j;
printf("введите элементы в mm\n");
for (i = 0; i < n; i++)
for (j = 0; j < m; j++)
{
printf("mas[%2d][%2d] = ", i, j);
scanf_s("%d", (mm + i * m + j));
}
}
void vivod(int n, int m, int** mm)
{
int i, j;
printf("\nВведенный массив: ");
for (i = 0; i < n; i++)
{
printf("\n");
for (j = 0; j < m; j++)
printf("%5d ", (*(mm + i * m + j)));
}
}
void sort(int n, int m, int mm)
{
int i, j;
int temp;
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
if (*(*(mm + i) + j) > *(*(mm + i) + j + 1))
{
temp = *(*(mm + i) + j);
*(*(mm + i) + j) = *(*(mm + i) + j + 1);
*(*(mm + i) + j + 1) = temp;
}
}
}
/*int osvob_memory(int n, int m, int mm)
{
int pp;
pp = mm;
int i, j;
for (i = 0; i < n; i++)
{
for (j = 0; j < i; j++)
free(*(mm + j));
free(mm);
}
return(mm);
}*/
labyrinth
https://github.com/apache/incubator-brpc/blob/master/src/bthread/timer_thread.cpp
I saw a usage that I have never seen before, class BAIDU_CACHELINE_ALIGNMENT TimerThread::Bucket, in which the BAIDU_CACHELINE_ALIGNMENT is beyond my knowledge