C++0x³¢ÏÊ ÓÃlambda±í´ïʽģÄâRubyµÄ¹ý³Ì¶ÔÏó
¹ØÓÚC++0x
Ô¤¼ÆÓÚÃ÷Äêµ×ÍÆ³öµÄбê×¼C++0x£¬Ëä˵ÒѽӽüÊչٽ׶Σ¬È´ÈÔÓÐÈô¸ÉÓдý½ÓÄɵÄÐÂÌá°¸±»Ìá³ö¡£ÓÈÆäÖµµÃ¹Ø×¢µÄÊÇ£¬Óëlambda±í´ïʽÒÔ¼°¾Ö²¿º¯ÊýÏà¹ØµÄÌá°¸“Unified Function Syntax£¨Í³Ò»µÄº¯ÊýÓï·¨£©”£¬¾¡¹Ü²»Êܱê׼ίԱ»á´ý¼û£¨Á½Äê¼äÀú¾ËÄ´ÎÑÓ³Ù±í¾ö£¬Á½´Î²»Óèͨ¹ý£©£¬ÈÔÈ»“ÍçÇ¿µØ”ÍÆ³öÁËÆäµÚ7¸ö°æ±¾N2989£¬Ìá°¸×÷ÕßïÆ¶ø²»ÉáµÄ¾«ÉñʵÔÚÁîÈËÇÕÅå¡£
¹ØÓÚlambda±í´ïʽ
Êܺ¯ÊýÐͱà³Ì·ç¸ñµÄÓ°Ï죬һЩOOPΪÖ÷Ìâ˼ÏëµÄ¾²Ì¬ÓïÑÔ·×·×ÍÆ³öÁËlambdaÕâÒ»ÒÔ¶ÌСµÄÄäÃûº¯ÊýÎªÌØµãµÄÓïÑÔÉèÊ©£¬µäÐ͵ÄÈç΢ÈíµÄVB9ºÍC#3.0¡£Óë´ËÏà¶ÔÓ¦µÄÊÇ£¬Öڶද̬½Å±¾ÓïÑÔ£¨python, ruby, javascript£©ÔòÔç¾Í¾ß±¸ÁËÏàÓ¦µÄÓïÑÔÌØÐÔ£¬RubyµÄ¹ý³Ì¶ÔÏó±ãÊÇÆäÖÐÒ»Àý¡£ÕâÒ»´Î½èC++0xбê×¼µÄ¶«·ç£¬C++ÓïÑÔ²»¸ÊÈ˺óͬÑùÒýÈëÁËÕâÒ»¼¤¶¯ÈËÐĵÄÐÂÌØÐÔ£¬Îªº¯ÊýÐͱà³Ì·ç¸ñÔÚC++ÓïÑÔÄڵĽøÒ»²½Íƹã´òÏÂÁ˼áʵµÄ»ù´¡¡£
ÒÔÏÂÓÃC++0xÖеÄlambda±í´ïʽÀ´Ä£ÄâRubyµÄ¹ý³Ì¶ÔÏó¡£
Ruby´úÂë
class Array
def inject(n)
each { |value| n = yield(n, value) }
n
end
def sum
inject(0) { |n, value| n + value }
end
def product
inject(1) { |n, value| n * value }
end
def find
for i in 0...size
value = self[i]
return value if yield(value)
end
return nil
end
end
[ 1, 2, 3, 4, 5 ].sum # 15
[ 1, 2, 3, 4, 5 ].product # 120
[ 1, 2, 3, 4, 5 ].find {|v| v*v > 10 } # 4
ÓйØRubyµÄ¹ý³Ì¶ÔÏóÒÔ¼°Õâ¶ÎRuby´úÂëµÄ˵Ã÷£¬Çë²Î¿¼RubyÓïÑÔÖеķº»Øµ÷¼°ÆäÔÚC++ÓïÑÔÖеÄÄ£ÄâʵÏÖÒ»ÎÄ¡£
C++´úÂë
#include <array>
#include <functional>
//#include <numeric>
#include <algorithm>
#include <boost/assign.hpp>
#include <iostream>
using namespace std;
template<typename T>
struct Array : public vector<T>
{
template<typename _Iter>
Array(_Iter _First, _Iter _Last) : vector(_First, _Last) {}
T inject(T n, function<T(T,T)> f) const {
for_each(begin(), end(), [&](T value){n = f(n, value);});
return n;
Ïà¹ØÎĵµ£º
Õâ¸ö³ÌÐò½ö¹©±à³Ì²Î¿¼
ÈôÏëÔÚÆ½Ê±Óã¬ÇëÏÂÔØÎ¢ÈíµÄwallpaper changer
ÎÒÕâ¸ö³ÌÐòʵÏÖÁ˶¨Ê±¸ü»»×ÀÃæ±³¾°µÄ¹¦ÄÜ
ÃüÁîÐÐ wallpaper "your images' directory path" time_in_minute
±à³ÌÒªµã
findfirstfile findnextfile ²éÕÒͼÏñÎļþ
SystemParametersInfo ÐÞ¸ÄϵͳÐÅÏ¢£¬ÔÚÕâ¶ùµ±È»ÊÇ×ÀÃæ±³¾°
×¢²á±í²Ù×÷ ±£´æÐ ......
·¢ÌùǰÇëÏȶÁ£ºc/c++ °æ“¾µä”ÎÊÌâ½â´ð
C/C++Ò»Ö±¶¼ÊǵØÇòÉÏʹÓÃ×î¹ã·ºµÄ±à³ÌÓïÑÔ£¬¶øÎÒÃǵÄC/C++°æ×ÔÈ»ÈËÆøÒ²²»²î£¬µ«ÊÇÒ»Ö±¶¼ÓÐһЩºÝ³õ¼¶µÄÎÊÌâÌáÁËÓÖÌᣬ²¢²»ÊÇ˵ÕâЩÎÊÌâÈçºÎÈçºÎµÄ²»ºÃ£¬»¹ÊÇÈçºÎÈçºÎµÄÈõÖÇ£¬ÕâЩÎÊÌâÒ»Ö±¶¼ÊÇÐÂÊÖѧϰµÄ»ù´¡£¬ÊDZØÐëÒª¾¹ýµÄÃż÷£¬ËùÒÔÒ²ÓдæÔڵıØÒª£¬µ«ÊÇÌáµÄ¶àÁË£¬ ......
ÔÚ´ò°üoralce¿Í»§¶Ëºó£¬¾³£»áÓöµ½Õâ¸öÎÊÌâ“specified class not registered in registry”
½â¾ö°ì·¨£º
ÕâÊÇÒòΪÓм¸¸öÁ´½Ó¿âdll»òocxûע²áµÄÔÒò£¬¾±¾È˲âÊÔΪÒÔÏÂ5¸öÎļþ£º
......
32)
¡¡¡¡int main()
¡¡¡¡{
¡¡¡¡¡¡int x=3;
¡¡¡¡¡¡printf("%d",x);
¡¡¡¡¡¡return 1;
¡¡¡¡}
¡¡¡¡Îʺ¯Êý¼ÈÈ»²»»á±»ÆäËüº¯Êýµ÷Óã¬ÎªÊ²Ã´Òª·µ»Ø1£¿
¡¡¡¡mianÖУ¬c±ê×¼ÈÏΪ0±íʾ³É¹¦£¬·Ç0±íʾ´íÎó¡£¾ßÌåµÄÖµÊÇijÖоßÌå³ö´íÐÅÏ¢
33) Òª¶Ô¾ø¶ÔµØÖ·0x100000¸³Öµ£¬ÎÒÃÇ¿ÉÒÔÓÃ(unsigned int*)0x100 ......
ÄÜ£¬¾Ö²¿»áÆÁ±ÎÈ«¾Ö¡£ÒªÓÃÈ«¾Ö±äÁ¿£¬ÐèҪʹÓÃ"::"
¾Ö²¿±äÁ¿¿ÉÒÔÓëÈ«¾Ö±äÁ¿Í¬Ãû£¬ÔÚº¯ÊýÄÚÒýÓÃÕâ¸ö±äÁ¿Ê±£¬»áÓõ½Í¬ÃûµÄ¾Ö²¿±äÁ¿£¬¶ø²»»áÓõ½È«¾Ö±äÁ¿¡£¶ÔÓÚÓÐЩ±àÒëÆ÷¶øÑÔ£¬ÔÚͬһ¸öº¯ÊýÄÚ¿ÉÒÔ¶¨Òå¶à¸öͬÃûµÄ¾Ö²¿±äÁ¿£¬±ÈÈçÔÚÁ½¸öÑ»·ÌåÄÚ¶¼¶¨ÒåÒ»¸öͬÃûµÄ¾Ö²¿±äÁ¿£¬¶øÄǸö¾Ö²¿±äÁ¿µÄ×÷ÓÃÓò¾ÍÔÚÄǸöÑ»·ÌåÄÚ¡£
2¡¢ÈçºÎÒýÓ ......