compétences d'artisanat mauvais impairs C +

Auteur: PYJ philippica
lien: https: //www.zhihu.com/question/37692782/answer/73302430
Source: connaître presque
le droit d' auteur de tous, reproduit l'autorisation de contact s'il vous plaît auteur.

1. lecture ultra-rapide
maintenant lu rapidement la barre noire n'a pas la technologie, après la lecture ci - dessus hdu vitesse de lecture rapide plus rapide que
const int = 120 << 20 est le BUFSIZE,
omble chevalier Buf [. Bufsize + 1], * buf = buf;
Template <class T>
inline void balayage (T & R) {
for (A = 0; * buf < '0' || * buf> » 9' .; buf ++),
le temps (* buf> = '0' && * buf <=) = {A 10 + A * (* buf-'0 '); buf ++;}' 9' .
}

fread (buf ,. 1, le BUFSIZE, stdin);


2. expansion pile, la pile est limité dans le système Windows, explosion comment faire?
#pragma comment (linker, "/ STACK : 102400000,102400000")

lorsque 3.vim écrire du code à utiliser c ++ 11 fonctionnalités toujours à compiler avec std = c ++ 11, directement dans le programme plus:
l'erreur de diagnostic GCC #pragma "std C ++ = 11."

- ( "O3")) (optimize () 4. noir et même type, qui programme d'optimisation O3 ouvert __attribute __

une sélection de 5 2009 Luo Qiang a mentionné la thèse. technologie noire:


inline int abs(int x)
{
      int y = x >> 31;
      return (x + y) ^ y;
}


Fonction max écrit:
inline int max(int x, int y)
{
    return y&((x-y)>>31)|x&~((x-y)>>31);
}




Int calculer la moyenne des deux (ou un nombre entier), x, y deux nombres peuvent déborder, peut être écrite comme:
int average = (x & y) + ((x ^ y) >> 1)


Afin de faire un taux de succès de cache plus, pour éviter le tableau est une puissance de 2 longueur

6.c / c ++ accolades {} et peut être <%> échange ne sait pas que .......... Quelle est la signification


7. Utilisez le code suivant est estimé que beaucoup de gens sont déjà familiers avec , dans certains cas, mais la première fois que je voyais le code suivant ou difficile à comprendre depuis longtemps
#define st(x) do { x } while (__LINE__ == -1)


8. En réponse au JO, long long% LLD certains JO est un peu% I64d, n'est pas encore un changement?
Peut - telle utilisation intelligente des macros:
#define LLD "%lld"


Tels que la sortie peut printf ( « Sortie: » LLD « \ n », x),
alors il peut changer que l' un des

multipliant deux long long 9. Puis p mod, après multiplication peut déborder, ancienne puissance rapide, existante multiplication rapide, le degré de popularité est maintenant essentiellement la technologie est pas trop sombre
long long multiply(long long x,long long y,long long p)// x * y % p
{
	long long ret = 0;
	for(; y; y >>= 1)
	{
		if(y & 1)ret = (ret + x) % p;
		x = (x + x) % p;
	}
	return ret;
}
Publié 12 articles originaux · louange gagné 6 · vues 20000 +

Je suppose que tu aimes

Origine blog.csdn.net/huaweizte123/article/details/54426438
conseillé
Classement