unsigned int a=200;
//mov dword ptr [a],0C8h
a >>= 1;
//mov eax,dword ptr [a]
//shr eax,1
//mov dword ptr [a],eax
a /= 2;
//mov eax,dword ptr [a]
//shr eax,1
//mov dword ptr [a],eax
int b = -200;
//mov dword ptr [b],0FFFFFF38h
b /= 2;
//mov eax,dword ptr [b]
//cdq
//sub eax,edx
//sar eax,1
//mov dword ptr [b],eax
b >>= 1;
//mov eax,dword ptr [b]
//sar eax,1
//mov dword ptr [b],eax
Run Code Online (Sandbox Code Playgroud)
我正在使用 msvc,// 是该 C 语句的程序集。
为什么signed int/=2不同于>>=1 …
std::unique_ptr<type[]> D{ std::make_unique<type[]>(10'000) };
std::sort(D2[0], D2[10'000], [](auto& a, auto& b)->bool {return a < b; }); //error
Run Code Online (Sandbox Code Playgroud)
我std::unique_ptr<[]>用来读取二进制文件。如果我想对这些数据进行排序,我是否必须制作另一个矢量或其他东西?我不知道如何将sortfunc 与unique_ptr<[]>. 你能告诉我路吗?