際際滷

際際滷Share a Scribd company logo
仍亞仂亳仄 亳 从仂仍仍亠从亳亳
舒仆亟舒仆 弍亳弍仍亳仂亠从
C++, C#, Java, Objective-C

弍 仂亟仆仂亶 亢亠仄亢亳仆亠 Microsoft,
仗仂亳仂于舒仆仆仂亶 仆舒 Obj-C...

仆仂仆 从仂于
@k06a
AlgoCollections (RUS)
仆仂于仆亠 仆仂亳
舒仆亟舒仆仂亶 弍亳弍仍亳仂亠从亳


仂仍仍亠从亳亳 (从 亟舒仆仆)



仍亞仂亳仄 (仆亳于亠舒仍仆亠 亳 仗亠亳舒仍仆亠)



亠亠亳仍亳亠仍亳 (iterator, enumerator)
仂仍仍亠从亳亳.
(从 亟舒仆仆)
C++
(STL)

仂仂礌仆仂亞仂
舒亰仄亠舒
亠 亰舒于亳
仂 亰仆舒亠仆亳亶

弌舒于仆亳于舒ム
亰仆舒亠仆亳
弌亳舒ム 亠亳
亳 舒于仆亳于舒ム
亰仆舒亠仆亳

C#
(.NET Framework)

[]
std::array

Array

unordered_set
unordered_map

Obj-C

(Collections Framework) (Foundation Framework)

Array

[]
NSArray

ArrayList
LinkedList
ArrayDeque

NSMutableArray
NSPointerArray

SortedSet
SortedDictionary

TreeSet
TreeMap

NSMutableOrderedSet

Set
Dictionary

HashSet/
LinkedHashSet
HashMap/
LinkedHashMap

NSMutableSet
NSCountedSet
NSHashTable
NSMutableDictionary
NSMapTable

vector list stack List LinkedList
queue deque
Stack Queue
set
map

Java
亠舒亳 从仂仍仍亠从亳亶.
仆亠亠亶 C# 亳 Java
IEnumerable

Collection

Map

 iterator

 clear

 bool Add
 

 containsK/V
 remove

 remove

 Count

 clear

 contains

ISet

 put

 add

ICollection

 size

 size

 GetEnumerator

 entrySet

 Add

 keySet

 Clear

 values

 Contains
 Remove

Queue

Set

 add

IList

IDictionary

 Item[i]

 Item[key]

 Insert

 Add(key,value)

 IndexOf

 ContainsKey

 RemoveAt

 Remove(key)

 element
 remove()
 offer
 peek
 poll

List

Deque

 add(i,o)

SortedSet
 subSet
 headSet
 tailSet
 鍖rst
 last

 addF/L

 get

 removeF/L

 set

 getF/L

 indexOf

 offerF/L

 remove(i)

 peekF/L

 subList

 pollF/L

 listIterator

SortedMap
 subMap
 headMap
 tailMap
 鍖rstKey
NSArray
Input
iterator

Output
iterator

Forward
iterator

NSSet

NSMutableArray

NSMutableSet

NSPointerArray

NSCountedSet

NSHashTable

亠舒亳 从仂仍仍亠从亳亶.
C++ 亳 Obj-C

NSOrderedSet
Bidirectional
iterator
Random
Access
iterator

NSDictionary
NSMutableDictionary

NSMapTable

NSMutableOrderedSet
NSIndexSet
NSMutableIndexSet
亠舒亳 从仂仍仍亠从亳亶.
亠舒仂 于 C++ (STL)
舒亠亞仂亳亳

O

X b(a); 亳 b = a;

仂亢亠 弍 于亠仍亳亠仆 仆舒 亠亟亳仆亳

I

BD

舒亢亠仆亳亠

仂亢亠 弍 从仂仗亳仂于舒仆 亳 仂亰亟舒仆 仗仂 仂弍舒亰 亳 仗仂亟仂弍亳

于亠

FW

丱舒舒从亠亳亳从舒

++a 亳 a++

仂亟亟亠亢亳于舒亠 舒于仆亠仆亳亠 仆舒 舒于亠仆于仂/仆亠舒于亠仆于仂

a == b 亳 a != b

仂亢亠 弍 舒亰仄亠仆仂于舒仆 从舒从 rvalue 亟仍 仗仂仍亠仆亳 亰仆舒亠仆亳

*a"
a->m
*a = t"

仂亢亠 弍 舒亰仄亠仆仂于舒仆 从舒从 lvalue 亟仍 亳仗仂仍亰仂于舒仆亳 仍亠于舒 仂
亰仆舒从舒 仗亳于舒亳于舒仆亳
仂亢亠 弍 仂亰亟舒仆 从仂仆从仂仂仄 仗仂-仄仂仍舒仆亳

*a++ = t
X a;

仂亢亠 弍 仄亠仆亠仆 仆舒 亠亟亳仆亳
仂亟亟亠亢亳于舒亠 舒亳仄亠亳亠从亳亠 仂仗亠舒亳亳 + 亳 -

a+n 亳 an

仂亟亟亠亢亳于舒亠 舒于仆亠仆亳 (<, >, <= 亳 >=) 仄亠亢亟 亳亠舒仂舒仄亳

a < b 亳 a <= b

仂亟亟亠亢亳于舒亠 仂仗亠舒亳亳 于亠仍亳亠仆亳 += 亳 仄亠仆亠仆亳 -=

a += n 亳 a -= n

仂亟亟亠亢亳于舒亠 舒亰仄亠仆仂于舒仆亳亠 仗仂 亳仆亟亠从

RA

X b(a);"
++a == ++b
--a 亳 a--

a[n]

仂亢亠 弍 从仂仗亳仂于舒仆 亳 亳仗仂仍亰仂于舒仆 亟仍 仗仂于仂仆仂亞仂 仂弍仂亟舒

RA  Random Access iterator ! I"  Input iterator!
BD"  Bidirectional iterator!
O"  Output iterator!

FW  Forward iterator!
亠亠亳仍亳亠仍亳
(iterator, enumerator)
C++
for	
 油(auto	
 油it	
 油=	
 油arr.begin();	
 油
	
 油	
 油	
 油	
 油	
 油it	
 油!=	
 油arr.end();	
 油++it)	
 油
{	
 油
	
 油	
 油	
 油	
 油std::cout	
 油<<	
 油*it;	
 油
	
 油	
 油	
 油	
 油sum	
 油+=	
 油*it;	
 油
}	
 油
//	
 油-足-足it,	
 油it+n,	
 油it-足n

Java

C#
var	
 油en	
 油=	
 油arr.GetEnumerator();	
 油
while	
 油(en.MoveNext())	
 油
{	
 油
	
 油	
 油	
 油	
 油Console.Write(en.Current);	
 油
	
 油	
 油	
 油	
 油sum	
 油+=	
 油en.Current;	
 油
}	
 油
en.Dispose();	
 油//	
 油using

Objective-C

Iterator	
 油it	
 油=	
 油arr.iterator();	
 油
id	
 油en	
 油=	
 油[arr	
 油objectEnumerator];	
 油
while	
 油(it.hasNext())	
 油
id	
 油object;	
 油
{	
 油
while	
 油(object	
 油=	
 油[en	
 油nextObject])	
 油
	
 油	
 油	
 油	
 油int	
 油value	
 油=	
 油(Integer)	
 油it.next();	
 油 {	
 油
	
 油	
 油	
 油	
 油System.out.print(value);	
 油
	
 油	
 油	
 油	
 油NSLog(@"%@",	
 油object);	
 油
	
 油	
 油	
 油	
 油sum	
 油+=	
 油value;	
 油
	
 油	
 油	
 油	
 油sum	
 油+=	
 油[object	
 油intValue];	
 油
}
}
仍亞仂亳仄
(1 亳亰 2)
C++
(STL)

舒弍仂舒 
仄仆仂亢亠于舒仄亳

C#
(.NET Framework)

merge set_union
Union Intersect
set_intersect
Except
set_difference

Java

Obj-C

(Collections Framework) (Foundation Framework)

disjoint

unionSet minusSet
intersectSet
removeObjectsInArray

sortedArray*
keysSortedBy*

sort stable_sort
partial_sort

OrderBy ThenBy
OrderByDescending
ThenByDescending

sort sorted

鍖nd search
binary_search

List.BinarySearch
List.Find***
IList.IndexOf
Where TakeWhile
SkipWhile

binarySearch
indexOfSubList
鍖lter

all_of any_of
亞亞亠舒亞亳ム亳亠 none_of count
min max

All Any Count
Sum Average
Min Max

valueForKeyPath
frequency
@avg @count
min max allMatch
anyMatch reduce
@max @min
noneMatch
@sum

弌仂亳仂于从亳

仂亳从仂于亠

indexOfObject*
鍖lterUsing 鍖ltered*Using
objectsPassingTest

NSPredicate
NSExpression
仍亞仂亳仄
(2 亳亰 2)
C++
(STL)

仂亳亠

C#
(.NET Framework)

copy
swap
transform
replace
鍖ll
generate
remove
unique
reverse
rotate
shuf鍖e

List.Reverse
Select
Take
Skip
Enumerable.Repeat
Enumerable.Range

Distinct
Reverse
Join
GroupBy
SelectMany

Java

Obj-C

(Collections Framework) (Foundation Framework)

copy
swap
replaceAll
鍖ll
reverse
rotate
shuf鍖e

@distinctUnionOfObjects
@unionOfObjects
@distinctUnionOfArrays
@unionOfArrays
@unionOfSets
亳仄亠
(1 亳亰 6)


舒仆仂:
struct Tweet { id, time, text, url, user_id };
struct User { id, name, nick };
array<Tweet> tweets;
map<int,User> userDict;



舒亶亳:
仄 仗仂仍亰仂于舒亠仍  仄舒从亳仄舒仍仆仄 亳仍仂仄 于亳仂于 亰舒
亳从亳仂于舒仆仆 亟舒 (1 亠仆 2013), 仂亟亠亢舒亳 仍从 于 仗仂仍亠
url 亳 舒仄仂 从仂仍亳亠于仂 舒从亳 于亳仂于.
亳仄亠
(2 亳亰 6)

弌++:
"
map<int,int> countByUserId;!
for (auto it = tweets.begin(); it != tweets.end(); ++it)!
if ("2013-09-01" <= it->time && it->time < "2013-09-02")!
if (it->url != 0)!
countByUserId[it->user_id]++;!

"





auto para = max_element(countByUserId.begin(),!
countByUserId.end(),!
[](pair<int,int> a, pair<int,int> b)!
{ return a.second < b.second; });!
油!
cout << "User = " << userDict[para.first].name << endl!
<< "Value = " << para.second << endl;
亳仄亠
(3 亳亰 6)

Obj-C:
"
NSMutableDictionary * countByUserId = [NSMutableDictionary dictionary];!
for (Tweet * tweet in tweets)!
if ([@"2013-09-01" compareTo:tweet.time] <= 0 && [tweet.time compareTo:@"2013-09-02"] < 0)!
if (tweet.url != 0) {!
int count = [countByUserId[tweet->user_id] intValue];!
countByUserId[tweet->user_id] = @(count + 1);!
}!

"

int maxCount = 0;!
id maxKey = nil;!
[countByUserId enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {!
if ([obj intValue] > maxCount) {!
maxCount = [obj intValue];!
maxKey = key;!
}!
}];!

"

NSLog(@"User = %@nValue = %d",!
[userDict[maxKey] name],!
maxCount);
亳仄亠
(4 亳亰 6)

Java:
"
HashMap<int,int> countByUserId = new HashMap<int,int>();!
for (Tweet tweet : tweets)!
if ("2013-09-01" <= tweet.time && tweet.time < "2013-09-02")!
if (tweet.url != 0) {!
int count = countByUserId.get(tweet.user_id);!
countByUserId.set(tweet->user_id, (count==null?0:count) + 1);!
}!
油!
int maxCount = 0;!
id maxKey = nil;!
for(Entry<int,int> entry : countByUserId.entrySet()) {!
if (entry.getValue() > maxCount) {!
maxCount = entry.getValue();!
maxKey = entry.getKey();!
}!
}!
油!
System.out.format("User = %snValue = %d",!
userDict.get(maxKey),!
maxCount);
亳仄亠
(5 亳亰 6)

C#:
"

var group = tweets.Where(t => "2013-09-01" <= t.time!
&& t.time < "2013-09-02")!
.Where(t => t.url != null)!
.GroupBy(t => t.user_id)!
.Max(gr => gr.Count());!
油!
Console.WriteLine("User = {0}nValue = {1}",!
userDict[group.Key].name,!
group.Count());
亳仄亠
(6 亳亰 6)

Java 8 (java.util.stream):
"
Entry<int,List<int>> !
entry = tweets.stream()!
.filter(t -> "2013-09-01" <= t.time!
&& t.time < "2013-09-02")!
.filter(t -> t.url != null)!
.groupingBy(t -> t.user_id) // Map<int,List<int>>!
.entrySet().stream()!
.max((a,b) -> Int.compare(a.getValue().size(),!
b.getValue().size()));!
油!
System.out.format("User = %snValue = %d",!
userDict.get(entry.getKey()),!
entry.getValue().size());
亳仄亠
(7 亳亰 6, 舒亞舒)

Obj-C + NSEnumeratorLinq:
"
var para = [[[[tweets.objectEnumerator!
where:^(Tweet *t){return [@"2013-09-01" compareTo:t.time] <= 0!
&& [t.time compareTo:@"2013-09-02"] < 0;}]!
where:^(Tweet *t){return t.url != null;}]!
groupBy:^(Tweet *t){return t.user_id;}]!
max:^(NSKeyValuePair *p){return @([p.value count]);}];!
油!
NSLog(@"User = %@nValue = %@",!
[userDict[para.key] name],!
[para.value count]);
弌舒于仆亠仆亳亠 舒亳亠从
舒仆亟舒仆 弍亳弍仍亳仂亠从
弌++:



亠舒亳 亳亠舒仂仂于
仍亞仂亳仄 仆亳于亠舒仍仆亠, 亰舒于亳 仂 从舒亠亞仂亳亶 亳亠舒仂仂于

弌#:



亠舒亳 亳仆亠亠亶仂于
仍亞仂亳仄 仆亳于亠舒仍仆亠, 亰舒于亳 仂 亳仆亠亠亶仂于, 于舒亳于舒ム 于 亠仗

Java:




亠舒亳 亳仆亠亠亶仂于
仍亞仂亳仄 仆亳于亠舒仍仆亠, 亰舒于亳 仂 亳仆亠亠亶仂于 (java.util.Collections)
仍亞亳仄 仆亳于亠舒仍仆亠, 于舒亳于舒ム 于 亠仗 (java.util.stream)

Obj-C:



亠舒亳 仂于亠, 亠仍亳 仆亠 亳舒 Immutable-Mutable
仍亞仂亳仄 仗亠亳亳仆亠 从仂仄亠 仂亟仆仂亞仂 :) [NSEnumerator allObjects]
NSEnumeratorLinq


仆仂于仆亠 仄亠仂亟:



舒弍仂舒  仄仆仂亢亠于舒仄亳:



where, where_i, ofType



concat, concatOne



select, select_i



union, intersect, except



distinct



zip



skip, skipWhile



join, groupJoin



take, takeWhile





groupBy, selectMany



orderBy, orderByDescending

亅从仗仂:



从从仄仍亳:


toArray, toSet
toDictionary, toLookup

仂仗仂仍仆亳亠仍仆仂:



aggregate, elect, elementAt



all, any, none



readBytes, readLines



min, max



keyValueEnumerator



sum, average



stringByJoin-withSeparator



鍖rstOrDefault, lastOrDefault



enumerateCharacters
仂仍亠亰仆亠 仍从亳


Collections Programming Guide - https://developer.apple.com/
library/mac/documentation/cocoa/conceptual/Collections/
Collections.html



NSSortDescriptor - http://nshipster.com/nssortdescriptor/



NSPredicate - http://nshipster.com/nspredicate/



NSExpression - http://nshipster.com/nsexpression/



NSOrderedSet - http://nshipster.com/nsorderedset/



Key-Value Collection Operators  https://developer.apple.com/
library/mac/documentation/Cocoa/Conceptual/KeyValueCoding/
Articles/CollectionOperators.html



https://github.com/robrix/RxCollections



https://github.com/k06a/NSEnumeratorLinq
One more thing


仗亠舒仂 if-null


仂亟 仆舒 C#:
string priceStr = priceHolder.get(featureName);
PriceLabel.Text = priceStr ?? "$0.99";



仂亟 仆舒 Obj-C:
NSDictionary *prices = [self.storeManager pricesDictionary];
NSString *p1 = prices[@"com.identifier1"] ?: @"$0.99";

More Related Content

What's hot (19)

Charming python sc2-8
Charming python sc2-8Charming python sc2-8
Charming python sc2-8
Vladislav Ananev
仂亟仂弍仆舒 仗亠亰亠仆舒亳 JavaScript 6 于 1
仂亟仂弍仆舒 仗亠亰亠仆舒亳 JavaScript 6 于 1仂亟仂弍仆舒 仗亠亰亠仆舒亳 JavaScript 6 于 1
仂亟仂弍仆舒 仗亠亰亠仆舒亳 JavaScript 6 于 1
Vasya Petrov
仂亳仍亳仂于舒仆亳亠 亳 仂仍舒亟从舒 Django
仂亳仍亳仂于舒仆亳亠 亳 仂仍舒亟从舒 Django仂亳仍亳仂于舒仆亳亠 亳 仂仍舒亟从舒 Django
仂亳仍亳仂于舒仆亳亠 亳 仂仍舒亟从舒 Django
Vladimir Rudnyh
Javascript
JavascriptJavascript
Javascript
Vasya Petrov
弍亠从仆仂亠 亳 仗仂仂亳仗仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 于 Javascript
弍亠从仆仂亠 亳 仗仂仂亳仗仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 于 Javascript弍亠从仆仂亠 亳 仗仂仂亳仗仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 于 Javascript
弍亠从仆仂亠 亳 仗仂仂亳仗仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 于 Javascript
Denis Latushkin
Python dict: 仗仂仍仂亠, 仆舒仂亠亠, 弍亟亠亠
Python dict: 仗仂仍仂亠, 仆舒仂亠亠, 弍亟亠亠Python dict: 仗仂仍仂亠, 仆舒仂亠亠, 弍亟亠亠
Python dict: 仗仂仍仂亠, 仆舒仂亠亠, 弍亟亠亠
delimitry
亠 从仂仆从亳亳 于 Python - 仍亠亞 丿亳亟仍仂于从亳亶, Python Meetup 26.09.2014
亠 从仂仆从亳亳 于 Python - 仍亠亞 丿亳亟仍仂于从亳亶, Python Meetup 26.09.2014亠 从仂仆从亳亳 于 Python - 仍亠亞 丿亳亟仍仂于从亳亶, Python Meetup 26.09.2014
亠 从仂仆从亳亳 于 Python - 仍亠亞 丿亳亟仍仂于从亳亶, Python Meetup 26.09.2014
Python Meetup
Scala - my path
Scala - my pathScala - my path
Scala - my path
仆舒仂仍亳亶 仂仂于
Convert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at VizorConvert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at Vizor
DevGAMM Conference
亠从亳 #5. 于亠亟亠仆亳亠 于 磶从 仗仂亞舒仄仄亳仂于舒仆亳 Python 3
亠从亳 #5. 于亠亟亠仆亳亠 于 磶从 仗仂亞舒仄仄亳仂于舒仆亳 Python 3亠从亳 #5. 于亠亟亠仆亳亠 于 磶从 仗仂亞舒仄仄亳仂于舒仆亳 Python 3
亠从亳 #5. 于亠亟亠仆亳亠 于 磶从 仗仂亞舒仄仄亳仂于舒仆亳 Python 3
亊从仂于亠仆从仂 亳亳仍仍
舒亞亳 仄亠舒从仍舒仂于
舒亞亳 仄亠舒从仍舒仂于舒亞亳 仄亠舒从仍舒仂于
舒亞亳 仄亠舒从仍舒仂于
Andrey Zakharevich
个仆从亳仂仆舒仍仆仂 亟亠从仍舒舒亳于仆亶 亟亳亰舒亶仆 仆舒 C++
个仆从亳仂仆舒仍仆仂 亟亠从仍舒舒亳于仆亶 亟亳亰舒亶仆 仆舒 C++个仆从亳仂仆舒仍仆仂 亟亠从仍舒舒亳于仆亶 亟亳亰舒亶仆 仆舒 C++
个仆从亳仂仆舒仍仆仂 亟亠从仍舒舒亳于仆亶 亟亳亰舒亶仆 仆舒 C++
Alexander Granin
Memory managment in i os (1)
Memory managment in i os (1)Memory managment in i os (1)
Memory managment in i os (1)
it-park
Scala and LiftWeb presentation (Russian)
Scala and LiftWeb presentation (Russian)Scala and LiftWeb presentation (Russian)
Scala and LiftWeb presentation (Russian)
Dmitry Stropalov
仆亳. 舒亰舒弍仂从舒 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 2. Objective-C
仆亳. 舒亰舒弍仂从舒 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 2. Objective-C仆亳. 舒亰舒弍仂从舒 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 2. Objective-C
仆亳. 舒亰舒弍仂从舒 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 2. Objective-C
仍亠弍 丐舒舒仂于
Intro to Swift techitout
Intro to Swift techitoutIntro to Swift techitout
Intro to Swift techitout
Alexandr Graschenkov
亳舒亳仍 舒仂仂于, 弌++ 弍亠亰 new 亳 delete
亳舒亳仍 舒仂仂于, 弌++ 弍亠亰 new 亳 delete亳舒亳仍 舒仂仂于, 弌++ 弍亠亰 new 亳 delete
亳舒亳仍 舒仂仂于, 弌++ 弍亠亰 new 亳 delete
Platonov Sergey
舒仂舒 亳 亳亰仆仂 舒仆亟舒仆仂亶 弍亳弍仍亳仂亠从亳 Python
舒仂舒 亳 亳亰仆仂 舒仆亟舒仆仂亶 弍亳弍仍亳仂亠从亳 Python舒仂舒 亳 亳亰仆仂 舒仆亟舒仆仂亶 弍亳弍仍亳仂亠从亳 Python
舒仂舒 亳 亳亰仆仂 舒仆亟舒仆仂亶 弍亳弍仍亳仂亠从亳 Python
Python Meetup
弍 仂仂弍亠仆仆仂 亳仗仂仍亰仂于舒仆亳 亰仆舒亳仄 亳仗仂于 于 .NET
弍 仂仂弍亠仆仆仂 亳仗仂仍亰仂于舒仆亳 亰仆舒亳仄 亳仗仂于 于 .NET弍 仂仂弍亠仆仆仂 亳仗仂仍亰仂于舒仆亳 亰仆舒亳仄 亳仗仂于 于 .NET
弍 仂仂弍亠仆仆仂 亳仗仂仍亰仂于舒仆亳 亰仆舒亳仄 亳仗仂于 于 .NET
Andrey Akinshin
仂亟仂弍仆舒 仗亠亰亠仆舒亳 JavaScript 6 于 1
仂亟仂弍仆舒 仗亠亰亠仆舒亳 JavaScript 6 于 1仂亟仂弍仆舒 仗亠亰亠仆舒亳 JavaScript 6 于 1
仂亟仂弍仆舒 仗亠亰亠仆舒亳 JavaScript 6 于 1
Vasya Petrov
仂亳仍亳仂于舒仆亳亠 亳 仂仍舒亟从舒 Django
仂亳仍亳仂于舒仆亳亠 亳 仂仍舒亟从舒 Django仂亳仍亳仂于舒仆亳亠 亳 仂仍舒亟从舒 Django
仂亳仍亳仂于舒仆亳亠 亳 仂仍舒亟从舒 Django
Vladimir Rudnyh
弍亠从仆仂亠 亳 仗仂仂亳仗仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 于 Javascript
弍亠从仆仂亠 亳 仗仂仂亳仗仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 于 Javascript弍亠从仆仂亠 亳 仗仂仂亳仗仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 于 Javascript
弍亠从仆仂亠 亳 仗仂仂亳仗仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 于 Javascript
Denis Latushkin
Python dict: 仗仂仍仂亠, 仆舒仂亠亠, 弍亟亠亠
Python dict: 仗仂仍仂亠, 仆舒仂亠亠, 弍亟亠亠Python dict: 仗仂仍仂亠, 仆舒仂亠亠, 弍亟亠亠
Python dict: 仗仂仍仂亠, 仆舒仂亠亠, 弍亟亠亠
delimitry
亠 从仂仆从亳亳 于 Python - 仍亠亞 丿亳亟仍仂于从亳亶, Python Meetup 26.09.2014
亠 从仂仆从亳亳 于 Python - 仍亠亞 丿亳亟仍仂于从亳亶, Python Meetup 26.09.2014亠 从仂仆从亳亳 于 Python - 仍亠亞 丿亳亟仍仂于从亳亶, Python Meetup 26.09.2014
亠 从仂仆从亳亳 于 Python - 仍亠亞 丿亳亟仍仂于从亳亶, Python Meetup 26.09.2014
Python Meetup
Convert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at VizorConvert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at Vizor
DevGAMM Conference
亠从亳 #5. 于亠亟亠仆亳亠 于 磶从 仗仂亞舒仄仄亳仂于舒仆亳 Python 3
亠从亳 #5. 于亠亟亠仆亳亠 于 磶从 仗仂亞舒仄仄亳仂于舒仆亳 Python 3亠从亳 #5. 于亠亟亠仆亳亠 于 磶从 仗仂亞舒仄仄亳仂于舒仆亳 Python 3
亠从亳 #5. 于亠亟亠仆亳亠 于 磶从 仗仂亞舒仄仄亳仂于舒仆亳 Python 3
亊从仂于亠仆从仂 亳亳仍仍
舒亞亳 仄亠舒从仍舒仂于
舒亞亳 仄亠舒从仍舒仂于舒亞亳 仄亠舒从仍舒仂于
舒亞亳 仄亠舒从仍舒仂于
Andrey Zakharevich
个仆从亳仂仆舒仍仆仂 亟亠从仍舒舒亳于仆亶 亟亳亰舒亶仆 仆舒 C++
个仆从亳仂仆舒仍仆仂 亟亠从仍舒舒亳于仆亶 亟亳亰舒亶仆 仆舒 C++个仆从亳仂仆舒仍仆仂 亟亠从仍舒舒亳于仆亶 亟亳亰舒亶仆 仆舒 C++
个仆从亳仂仆舒仍仆仂 亟亠从仍舒舒亳于仆亶 亟亳亰舒亶仆 仆舒 C++
Alexander Granin
Memory managment in i os (1)
Memory managment in i os (1)Memory managment in i os (1)
Memory managment in i os (1)
it-park
Scala and LiftWeb presentation (Russian)
Scala and LiftWeb presentation (Russian)Scala and LiftWeb presentation (Russian)
Scala and LiftWeb presentation (Russian)
Dmitry Stropalov
仆亳. 舒亰舒弍仂从舒 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 2. Objective-C
仆亳. 舒亰舒弍仂从舒 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 2. Objective-C仆亳. 舒亰舒弍仂从舒 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 2. Objective-C
仆亳. 舒亰舒弍仂从舒 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 2. Objective-C
仍亠弍 丐舒舒仂于
亳舒亳仍 舒仂仂于, 弌++ 弍亠亰 new 亳 delete
亳舒亳仍 舒仂仂于, 弌++ 弍亠亰 new 亳 delete亳舒亳仍 舒仂仂于, 弌++ 弍亠亰 new 亳 delete
亳舒亳仍 舒仂仂于, 弌++ 弍亠亰 new 亳 delete
Platonov Sergey
舒仂舒 亳 亳亰仆仂 舒仆亟舒仆仂亶 弍亳弍仍亳仂亠从亳 Python
舒仂舒 亳 亳亰仆仂 舒仆亟舒仆仂亶 弍亳弍仍亳仂亠从亳 Python舒仂舒 亳 亳亰仆仂 舒仆亟舒仆仂亶 弍亳弍仍亳仂亠从亳 Python
舒仂舒 亳 亳亰仆仂 舒仆亟舒仆仂亶 弍亳弍仍亳仂亠从亳 Python
Python Meetup
弍 仂仂弍亠仆仆仂 亳仗仂仍亰仂于舒仆亳 亰仆舒亳仄 亳仗仂于 于 .NET
弍 仂仂弍亠仆仆仂 亳仗仂仍亰仂于舒仆亳 亰仆舒亳仄 亳仗仂于 于 .NET弍 仂仂弍亠仆仆仂 亳仗仂仍亰仂于舒仆亳 亰仆舒亳仄 亳仗仂于 于 .NET
弍 仂仂弍亠仆仆仂 亳仗仂仍亰仂于舒仆亳 亰仆舒亳仄 亳仗仂于 于 .NET
Andrey Akinshin

Viewers also liked (7)

仍亞仂亳仄 亳 从 亟舒仆仆 仂亠仆 2013 仍亠从亳 3
仍亞仂亳仄 亳 从 亟舒仆仆 仂亠仆 2013 仍亠从亳 3仍亞仂亳仄 亳 从 亟舒仆仆 仂亠仆 2013 仍亠从亳 3
仍亞仂亳仄 亳 从 亟舒仆仆 仂亠仆 2013 仍亠从亳 3
Technopark
PVS-Studio. Static code analyzer. Windows/Linux, C/C++/C#. 2017
PVS-Studio. Static code analyzer. Windows/Linux, C/C++/C#. 2017PVS-Studio. Static code analyzer. Windows/Linux, C/C++/C#. 2017
PVS-Studio. Static code analyzer. Windows/Linux, C/C++/C#. 2017
Andrey Karpov
Learn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionLearn BEM: CSS Naming Convention
Learn BEM: CSS Naming Convention
In a Rocket
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting Personal
Kirsty Hulse
Succession Losers: What Happens to Executives Passed Over for the CEO Job?
Succession Losers: What Happens to Executives Passed Over for the CEO Job? Succession Losers: What Happens to Executives Passed Over for the CEO Job?
Succession Losers: What Happens to Executives Passed Over for the CEO Job?
Stanford GSB Corporate Governance Research Initiative
How to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media PlanHow to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media Plan
Post Planner
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
ux singapore
仍亞仂亳仄 亳 从 亟舒仆仆 仂亠仆 2013 仍亠从亳 3
仍亞仂亳仄 亳 从 亟舒仆仆 仂亠仆 2013 仍亠从亳 3仍亞仂亳仄 亳 从 亟舒仆仆 仂亠仆 2013 仍亠从亳 3
仍亞仂亳仄 亳 从 亟舒仆仆 仂亠仆 2013 仍亠从亳 3
Technopark
PVS-Studio. Static code analyzer. Windows/Linux, C/C++/C#. 2017
PVS-Studio. Static code analyzer. Windows/Linux, C/C++/C#. 2017PVS-Studio. Static code analyzer. Windows/Linux, C/C++/C#. 2017
PVS-Studio. Static code analyzer. Windows/Linux, C/C++/C#. 2017
Andrey Karpov
Learn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionLearn BEM: CSS Naming Convention
Learn BEM: CSS Naming Convention
In a Rocket
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting Personal
Kirsty Hulse
How to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media PlanHow to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media Plan
Post Planner
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
ux singapore

Similar to AlgoCollections (RUS) (20)

弍亠从仆仂-仂亳亠仆亳仂于舒仆仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠. 亠从亳亳 9 亳 10
弍亠从仆仂-仂亳亠仆亳仂于舒仆仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠. 亠从亳亳 9 亳 10弍亠从仆仂-仂亳亠仆亳仂于舒仆仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠. 亠从亳亳 9 亳 10
弍亠从仆仂-仂亳亠仆亳仂于舒仆仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠. 亠从亳亳 9 亳 10
Dima Dzuba
弌舒亳亠从亳亶 舒仆舒仍亳亰: 于仂从亞 Java 亰舒 60 仄亳仆
弌舒亳亠从亳亶 舒仆舒仍亳亰: 于仂从亞 Java 亰舒 60 仄亳仆弌舒亳亠从亳亶 舒仆舒仍亳亰: 于仂从亞 Java 亰舒 60 仄亳仆
弌舒亳亠从亳亶 舒仆舒仍亳亰: 于仂从亞 Java 亰舒 60 仄亳仆
Andrey Karpov
仂 舒亳亠从仂仄 舒仆舒仍亳亰亠 从仂亟舒 亟仍 Java 仗仂亞舒仄仄亳舒
 仂 舒亳亠从仂仄 舒仆舒仍亳亰亠 从仂亟舒 亟仍 Java 仗仂亞舒仄仄亳舒 仂 舒亳亠从仂仄 舒仆舒仍亳亰亠 从仂亟舒 亟仍 Java 仗仂亞舒仄仄亳舒
仂 舒亳亠从仂仄 舒仆舒仍亳亰亠 从仂亟舒 亟仍 Java 仗仂亞舒仄仄亳舒
Andrey Karpov
舒亰舒弍仂从舒 IntelliJ IDEA: 于仗亠舒仍亠仆亳 仆仂于亳从舒. 丐舒亞亳 舒仍亠亠于, Senior Software ...
舒亰舒弍仂从舒 IntelliJ IDEA: 于仗亠舒仍亠仆亳 仆仂于亳从舒. 丐舒亞亳 舒仍亠亠于, Senior Software ...舒亰舒弍仂从舒 IntelliJ IDEA: 于仗亠舒仍亠仆亳 仆仂于亳从舒. 丐舒亞亳 舒仍亠亠于, Senior Software ...
舒亰舒弍仂从舒 IntelliJ IDEA: 于仗亠舒仍亠仆亳 仆仂于亳从舒. 丐舒亞亳 舒仍亠亠于, Senior Software ...
JetBrains Russia
弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒
弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒 弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒
弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒
Pavel Tsukanov
舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒
舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒
舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒
Andrey Karpov
亠从亳 8. Intel Threading Building Blocks
亠从亳 8. Intel Threading Building Blocks亠从亳 8. Intel Threading Building Blocks
亠从亳 8. Intel Threading Building Blocks
Mikhail Kurnosov
Sergii Tsypanov "Performance 1001 Tips"
Sergii Tsypanov "Performance 1001 Tips"Sergii Tsypanov "Performance 1001 Tips"
Sergii Tsypanov "Performance 1001 Tips"
LogeekNightUkraine
Cpp0x Introduction
Cpp0x IntroductionCpp0x Introduction
Cpp0x Introduction
Fedor Vompe
弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒: 丼仂? 舒从? 舒亠仄?
弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒: 丼仂? 舒从? 舒亠仄?弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒: 丼仂? 舒从? 舒亠仄?
弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒: 丼仂? 舒从? 舒亠仄?
Andrey Karpov
仍亠亞 舒仆仂于, 个亠亟仂 弌亳亞舒亠于, 仍亠从舒仆亟 仂仂从仂于 (PostgreSQL)
仍亠亞 舒仆仂于, 个亠亟仂 弌亳亞舒亠于, 仍亠从舒仆亟 仂仂从仂于 (PostgreSQL)仍亠亞 舒仆仂于, 个亠亟仂 弌亳亞舒亠于, 仍亠从舒仆亟 仂仂从仂于 (PostgreSQL)
仍亠亞 舒仆仂于, 个亠亟仂 弌亳亞舒亠于, 仍亠从舒仆亟 仂仂从仂于 (PostgreSQL)
Ontico
Erlang
ErlangErlang
Erlang
亳从仂 丐亠仆从仂
20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov
Computer Science Club
亳仆亳仗 舒弍仂 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒 PVS-Studio
亳仆亳仗 舒弍仂 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒 PVS-Studio亳仆亳仗 舒弍仂 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒 PVS-Studio
亳仆亳仗 舒弍仂 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒 PVS-Studio
Andrey Karpov
于亞亠仆亳亶 从仂 仗 于仆亠亟亠仆亳 亠仆仂仍仂亞亳亶 仗舒舒仍仍亠仍仆 于亳仍亠仆亳亶 亟仍 仗仂于...
于亞亠仆亳亶 从仂  仗 于仆亠亟亠仆亳 亠仆仂仍仂亞亳亶 仗舒舒仍仍亠仍仆 于亳仍亠仆亳亶 亟仍 仗仂于...于亞亠仆亳亶 从仂  仗 于仆亠亟亠仆亳 亠仆仂仍仂亞亳亶 仗舒舒仍仍亠仍仆 于亳仍亠仆亳亶 亟仍 仗仂于...
于亞亠仆亳亶 从仂 仗 于仆亠亟亠仆亳 亠仆仂仍仂亞亳亶 仗舒舒仍仍亠仍仆 于亳仍亠仆亳亶 亟仍 仗仂于...
Yandex
Scala for android
Scala for androidScala for android
Scala for android
Alexander Rusin
舒亳于 于 Java
舒亳于 于 Java舒亳于 于 Java
舒亳于 于 Java
metaform
仗 舒亰舒弍仂从亳 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒
仗 舒亰舒弍仂从亳 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒仗 舒亰舒弍仂从亳 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒
仗 舒亰舒弍仂从亳 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒
Andrey Karpov
仂亟仍仆仂亠 亠亳仂于舒仆亳亠 iOS-仗亳仍仂亢亠仆亳亶.
仂亟仍仆仂亠 亠亳仂于舒仆亳亠 iOS-仗亳仍仂亢亠仆亳亶.仂亟仍仆仂亠 亠亳仂于舒仆亳亠 iOS-仗亳仍仂亢亠仆亳亶.
仂亟仍仆仂亠 亠亳仂于舒仆亳亠 iOS-仗亳仍仂亢亠仆亳亶.
MageCloud
弍亠从仆仂-仂亳亠仆亳仂于舒仆仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠. 亠从亳亳 9 亳 10
弍亠从仆仂-仂亳亠仆亳仂于舒仆仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠. 亠从亳亳 9 亳 10弍亠从仆仂-仂亳亠仆亳仂于舒仆仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠. 亠从亳亳 9 亳 10
弍亠从仆仂-仂亳亠仆亳仂于舒仆仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠. 亠从亳亳 9 亳 10
Dima Dzuba
弌舒亳亠从亳亶 舒仆舒仍亳亰: 于仂从亞 Java 亰舒 60 仄亳仆
弌舒亳亠从亳亶 舒仆舒仍亳亰: 于仂从亞 Java 亰舒 60 仄亳仆弌舒亳亠从亳亶 舒仆舒仍亳亰: 于仂从亞 Java 亰舒 60 仄亳仆
弌舒亳亠从亳亶 舒仆舒仍亳亰: 于仂从亞 Java 亰舒 60 仄亳仆
Andrey Karpov
仂 舒亳亠从仂仄 舒仆舒仍亳亰亠 从仂亟舒 亟仍 Java 仗仂亞舒仄仄亳舒
 仂 舒亳亠从仂仄 舒仆舒仍亳亰亠 从仂亟舒 亟仍 Java 仗仂亞舒仄仄亳舒 仂 舒亳亠从仂仄 舒仆舒仍亳亰亠 从仂亟舒 亟仍 Java 仗仂亞舒仄仄亳舒
仂 舒亳亠从仂仄 舒仆舒仍亳亰亠 从仂亟舒 亟仍 Java 仗仂亞舒仄仄亳舒
Andrey Karpov
舒亰舒弍仂从舒 IntelliJ IDEA: 于仗亠舒仍亠仆亳 仆仂于亳从舒. 丐舒亞亳 舒仍亠亠于, Senior Software ...
舒亰舒弍仂从舒 IntelliJ IDEA: 于仗亠舒仍亠仆亳 仆仂于亳从舒. 丐舒亞亳 舒仍亠亠于, Senior Software ...舒亰舒弍仂从舒 IntelliJ IDEA: 于仗亠舒仍亠仆亳 仆仂于亳从舒. 丐舒亞亳 舒仍亠亠于, Senior Software ...
舒亰舒弍仂从舒 IntelliJ IDEA: 于仗亠舒仍亠仆亳 仆仂于亳从舒. 丐舒亞亳 舒仍亠亠于, Senior Software ...
JetBrains Russia
弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒
弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒 弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒
弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒
Pavel Tsukanov
舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒
舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒
舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒
Andrey Karpov
亠从亳 8. Intel Threading Building Blocks
亠从亳 8. Intel Threading Building Blocks亠从亳 8. Intel Threading Building Blocks
亠从亳 8. Intel Threading Building Blocks
Mikhail Kurnosov
Sergii Tsypanov "Performance 1001 Tips"
Sergii Tsypanov "Performance 1001 Tips"Sergii Tsypanov "Performance 1001 Tips"
Sergii Tsypanov "Performance 1001 Tips"
LogeekNightUkraine
Cpp0x Introduction
Cpp0x IntroductionCpp0x Introduction
Cpp0x Introduction
Fedor Vompe
弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒: 丼仂? 舒从? 舒亠仄?
弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒: 丼仂? 舒从? 舒亠仄?弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒: 丼仂? 舒从? 舒亠仄?
弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒: 丼仂? 舒从? 舒亠仄?
Andrey Karpov
仍亠亞 舒仆仂于, 个亠亟仂 弌亳亞舒亠于, 仍亠从舒仆亟 仂仂从仂于 (PostgreSQL)
仍亠亞 舒仆仂于, 个亠亟仂 弌亳亞舒亠于, 仍亠从舒仆亟 仂仂从仂于 (PostgreSQL)仍亠亞 舒仆仂于, 个亠亟仂 弌亳亞舒亠于, 仍亠从舒仆亟 仂仂从仂于 (PostgreSQL)
仍亠亞 舒仆仂于, 个亠亟仂 弌亳亞舒亠于, 仍亠从舒仆亟 仂仂从仂于 (PostgreSQL)
Ontico
20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov
Computer Science Club
亳仆亳仗 舒弍仂 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒 PVS-Studio
亳仆亳仗 舒弍仂 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒 PVS-Studio亳仆亳仗 舒弍仂 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒 PVS-Studio
亳仆亳仗 舒弍仂 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒 PVS-Studio
Andrey Karpov
于亞亠仆亳亶 从仂 仗 于仆亠亟亠仆亳 亠仆仂仍仂亞亳亶 仗舒舒仍仍亠仍仆 于亳仍亠仆亳亶 亟仍 仗仂于...
于亞亠仆亳亶 从仂  仗 于仆亠亟亠仆亳 亠仆仂仍仂亞亳亶 仗舒舒仍仍亠仍仆 于亳仍亠仆亳亶 亟仍 仗仂于...于亞亠仆亳亶 从仂  仗 于仆亠亟亠仆亳 亠仆仂仍仂亞亳亶 仗舒舒仍仍亠仍仆 于亳仍亠仆亳亶 亟仍 仗仂于...
于亞亠仆亳亶 从仂 仗 于仆亠亟亠仆亳 亠仆仂仍仂亞亳亶 仗舒舒仍仍亠仍仆 于亳仍亠仆亳亶 亟仍 仗仂于...
Yandex
舒亳于 于 Java
舒亳于 于 Java舒亳于 于 Java
舒亳于 于 Java
metaform
仗 舒亰舒弍仂从亳 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒
仗 舒亰舒弍仂从亳 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒仗 舒亰舒弍仂从亳 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒
仗 舒亰舒弍仂从亳 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒
Andrey Karpov
仂亟仍仆仂亠 亠亳仂于舒仆亳亠 iOS-仗亳仍仂亢亠仆亳亶.
仂亟仍仆仂亠 亠亳仂于舒仆亳亠 iOS-仗亳仍仂亢亠仆亳亶.仂亟仍仆仂亠 亠亳仂于舒仆亳亠 iOS-仗亳仍仂亢亠仆亳亶.
仂亟仍仆仂亠 亠亳仂于舒仆亳亠 iOS-仗亳仍仂亢亠仆亳亶.
MageCloud

AlgoCollections (RUS)

  • 1. 仍亞仂亳仄 亳 从仂仍仍亠从亳亳 舒仆亟舒仆 弍亳弍仍亳仂亠从 C++, C#, Java, Objective-C 弍 仂亟仆仂亶 亢亠仄亢亳仆亠 Microsoft, 仗仂亳仂于舒仆仆仂亶 仆舒 Obj-C... 仆仂仆 从仂于 @k06a
  • 3. 仆仂于仆亠 仆仂亳 舒仆亟舒仆仂亶 弍亳弍仍亳仂亠从亳 仂仍仍亠从亳亳 (从 亟舒仆仆) 仍亞仂亳仄 (仆亳于亠舒仍仆亠 亳 仗亠亳舒仍仆亠) 亠亠亳仍亳亠仍亳 (iterator, enumerator)
  • 4. 仂仍仍亠从亳亳. (从 亟舒仆仆) C++ (STL) 仂仂礌仆仂亞仂 舒亰仄亠舒 亠 亰舒于亳 仂 亰仆舒亠仆亳亶 弌舒于仆亳于舒ム 亰仆舒亠仆亳 弌亳舒ム 亠亳 亳 舒于仆亳于舒ム 亰仆舒亠仆亳 C# (.NET Framework) [] std::array Array unordered_set unordered_map Obj-C (Collections Framework) (Foundation Framework) Array [] NSArray ArrayList LinkedList ArrayDeque NSMutableArray NSPointerArray SortedSet SortedDictionary TreeSet TreeMap NSMutableOrderedSet Set Dictionary HashSet/ LinkedHashSet HashMap/ LinkedHashMap NSMutableSet NSCountedSet NSHashTable NSMutableDictionary NSMapTable vector list stack List LinkedList queue deque Stack Queue set map Java
  • 5. 亠舒亳 从仂仍仍亠从亳亶. 仆亠亠亶 C# 亳 Java IEnumerable Collection Map iterator clear bool Add containsK/V remove remove Count clear contains ISet put add ICollection size size GetEnumerator entrySet Add keySet Clear values Contains Remove Queue Set add IList IDictionary Item[i] Item[key] Insert Add(key,value) IndexOf ContainsKey RemoveAt Remove(key) element remove() offer peek poll List Deque add(i,o) SortedSet subSet headSet tailSet 鍖rst last addF/L get removeF/L set getF/L indexOf offerF/L remove(i) peekF/L subList pollF/L listIterator SortedMap subMap headMap tailMap 鍖rstKey
  • 6. NSArray Input iterator Output iterator Forward iterator NSSet NSMutableArray NSMutableSet NSPointerArray NSCountedSet NSHashTable 亠舒亳 从仂仍仍亠从亳亶. C++ 亳 Obj-C NSOrderedSet Bidirectional iterator Random Access iterator NSDictionary NSMutableDictionary NSMapTable NSMutableOrderedSet NSIndexSet NSMutableIndexSet
  • 7. 亠舒亳 从仂仍仍亠从亳亶. 亠舒仂 于 C++ (STL) 舒亠亞仂亳亳 O X b(a); 亳 b = a; 仂亢亠 弍 于亠仍亳亠仆 仆舒 亠亟亳仆亳 I BD 舒亢亠仆亳亠 仂亢亠 弍 从仂仗亳仂于舒仆 亳 仂亰亟舒仆 仗仂 仂弍舒亰 亳 仗仂亟仂弍亳 于亠 FW 丱舒舒从亠亳亳从舒 ++a 亳 a++ 仂亟亟亠亢亳于舒亠 舒于仆亠仆亳亠 仆舒 舒于亠仆于仂/仆亠舒于亠仆于仂 a == b 亳 a != b 仂亢亠 弍 舒亰仄亠仆仂于舒仆 从舒从 rvalue 亟仍 仗仂仍亠仆亳 亰仆舒亠仆亳 *a" a->m *a = t" 仂亢亠 弍 舒亰仄亠仆仂于舒仆 从舒从 lvalue 亟仍 亳仗仂仍亰仂于舒仆亳 仍亠于舒 仂 亰仆舒从舒 仗亳于舒亳于舒仆亳 仂亢亠 弍 仂亰亟舒仆 从仂仆从仂仂仄 仗仂-仄仂仍舒仆亳 *a++ = t X a; 仂亢亠 弍 仄亠仆亠仆 仆舒 亠亟亳仆亳 仂亟亟亠亢亳于舒亠 舒亳仄亠亳亠从亳亠 仂仗亠舒亳亳 + 亳 - a+n 亳 an 仂亟亟亠亢亳于舒亠 舒于仆亠仆亳 (<, >, <= 亳 >=) 仄亠亢亟 亳亠舒仂舒仄亳 a < b 亳 a <= b 仂亟亟亠亢亳于舒亠 仂仗亠舒亳亳 于亠仍亳亠仆亳 += 亳 仄亠仆亠仆亳 -= a += n 亳 a -= n 仂亟亟亠亢亳于舒亠 舒亰仄亠仆仂于舒仆亳亠 仗仂 亳仆亟亠从 RA X b(a);" ++a == ++b --a 亳 a-- a[n] 仂亢亠 弍 从仂仗亳仂于舒仆 亳 亳仗仂仍亰仂于舒仆 亟仍 仗仂于仂仆仂亞仂 仂弍仂亟舒 RA Random Access iterator ! I" Input iterator! BD" Bidirectional iterator! O" Output iterator! FW Forward iterator!
  • 8. 亠亠亳仍亳亠仍亳 (iterator, enumerator) C++ for 油(auto 油it 油= 油arr.begin(); 油 油 油 油 油 油it 油!= 油arr.end(); 油++it) 油 { 油 油 油 油 油std::cout 油<< 油*it; 油 油 油 油 油sum 油+= 油*it; 油 } 油 // 油-足-足it, 油it+n, 油it-足n Java C# var 油en 油= 油arr.GetEnumerator(); 油 while 油(en.MoveNext()) 油 { 油 油 油 油 油Console.Write(en.Current); 油 油 油 油 油sum 油+= 油en.Current; 油 } 油 en.Dispose(); 油// 油using Objective-C Iterator 油it 油= 油arr.iterator(); 油 id 油en 油= 油[arr 油objectEnumerator]; 油 while 油(it.hasNext()) 油 id 油object; 油 { 油 while 油(object 油= 油[en 油nextObject]) 油 油 油 油 油int 油value 油= 油(Integer) 油it.next(); 油 { 油 油 油 油 油System.out.print(value); 油 油 油 油 油NSLog(@"%@", 油object); 油 油 油 油 油sum 油+= 油value; 油 油 油 油 油sum 油+= 油[object 油intValue]; 油 } }
  • 9. 仍亞仂亳仄 (1 亳亰 2) C++ (STL) 舒弍仂舒 仄仆仂亢亠于舒仄亳 C# (.NET Framework) merge set_union Union Intersect set_intersect Except set_difference Java Obj-C (Collections Framework) (Foundation Framework) disjoint unionSet minusSet intersectSet removeObjectsInArray sortedArray* keysSortedBy* sort stable_sort partial_sort OrderBy ThenBy OrderByDescending ThenByDescending sort sorted 鍖nd search binary_search List.BinarySearch List.Find*** IList.IndexOf Where TakeWhile SkipWhile binarySearch indexOfSubList 鍖lter all_of any_of 亞亞亠舒亞亳ム亳亠 none_of count min max All Any Count Sum Average Min Max valueForKeyPath frequency @avg @count min max allMatch anyMatch reduce @max @min noneMatch @sum 弌仂亳仂于从亳 仂亳从仂于亠 indexOfObject* 鍖lterUsing 鍖ltered*Using objectsPassingTest NSPredicate NSExpression
  • 10. 仍亞仂亳仄 (2 亳亰 2) C++ (STL) 仂亳亠 C# (.NET Framework) copy swap transform replace 鍖ll generate remove unique reverse rotate shuf鍖e List.Reverse Select Take Skip Enumerable.Repeat Enumerable.Range Distinct Reverse Join GroupBy SelectMany Java Obj-C (Collections Framework) (Foundation Framework) copy swap replaceAll 鍖ll reverse rotate shuf鍖e @distinctUnionOfObjects @unionOfObjects @distinctUnionOfArrays @unionOfArrays @unionOfSets
  • 11. 亳仄亠 (1 亳亰 6) 舒仆仂: struct Tweet { id, time, text, url, user_id }; struct User { id, name, nick }; array<Tweet> tweets; map<int,User> userDict; 舒亶亳: 仄 仗仂仍亰仂于舒亠仍 仄舒从亳仄舒仍仆仄 亳仍仂仄 于亳仂于 亰舒 亳从亳仂于舒仆仆 亟舒 (1 亠仆 2013), 仂亟亠亢舒亳 仍从 于 仗仂仍亠 url 亳 舒仄仂 从仂仍亳亠于仂 舒从亳 于亳仂于.
  • 12. 亳仄亠 (2 亳亰 6) 弌++: " map<int,int> countByUserId;! for (auto it = tweets.begin(); it != tweets.end(); ++it)! if ("2013-09-01" <= it->time && it->time < "2013-09-02")! if (it->url != 0)! countByUserId[it->user_id]++;! " auto para = max_element(countByUserId.begin(),! countByUserId.end(),! [](pair<int,int> a, pair<int,int> b)! { return a.second < b.second; });! 油! cout << "User = " << userDict[para.first].name << endl! << "Value = " << para.second << endl;
  • 13. 亳仄亠 (3 亳亰 6) Obj-C: " NSMutableDictionary * countByUserId = [NSMutableDictionary dictionary];! for (Tweet * tweet in tweets)! if ([@"2013-09-01" compareTo:tweet.time] <= 0 && [tweet.time compareTo:@"2013-09-02"] < 0)! if (tweet.url != 0) {! int count = [countByUserId[tweet->user_id] intValue];! countByUserId[tweet->user_id] = @(count + 1);! }! " int maxCount = 0;! id maxKey = nil;! [countByUserId enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {! if ([obj intValue] > maxCount) {! maxCount = [obj intValue];! maxKey = key;! }! }];! " NSLog(@"User = %@nValue = %d",! [userDict[maxKey] name],! maxCount);
  • 14. 亳仄亠 (4 亳亰 6) Java: " HashMap<int,int> countByUserId = new HashMap<int,int>();! for (Tweet tweet : tweets)! if ("2013-09-01" <= tweet.time && tweet.time < "2013-09-02")! if (tweet.url != 0) {! int count = countByUserId.get(tweet.user_id);! countByUserId.set(tweet->user_id, (count==null?0:count) + 1);! }! 油! int maxCount = 0;! id maxKey = nil;! for(Entry<int,int> entry : countByUserId.entrySet()) {! if (entry.getValue() > maxCount) {! maxCount = entry.getValue();! maxKey = entry.getKey();! }! }! 油! System.out.format("User = %snValue = %d",! userDict.get(maxKey),! maxCount);
  • 15. 亳仄亠 (5 亳亰 6) C#: " var group = tweets.Where(t => "2013-09-01" <= t.time! && t.time < "2013-09-02")! .Where(t => t.url != null)! .GroupBy(t => t.user_id)! .Max(gr => gr.Count());! 油! Console.WriteLine("User = {0}nValue = {1}",! userDict[group.Key].name,! group.Count());
  • 16. 亳仄亠 (6 亳亰 6) Java 8 (java.util.stream): " Entry<int,List<int>> ! entry = tweets.stream()! .filter(t -> "2013-09-01" <= t.time! && t.time < "2013-09-02")! .filter(t -> t.url != null)! .groupingBy(t -> t.user_id) // Map<int,List<int>>! .entrySet().stream()! .max((a,b) -> Int.compare(a.getValue().size(),! b.getValue().size()));! 油! System.out.format("User = %snValue = %d",! userDict.get(entry.getKey()),! entry.getValue().size());
  • 17. 亳仄亠 (7 亳亰 6, 舒亞舒) Obj-C + NSEnumeratorLinq: " var para = [[[[tweets.objectEnumerator! where:^(Tweet *t){return [@"2013-09-01" compareTo:t.time] <= 0! && [t.time compareTo:@"2013-09-02"] < 0;}]! where:^(Tweet *t){return t.url != null;}]! groupBy:^(Tweet *t){return t.user_id;}]! max:^(NSKeyValuePair *p){return @([p.value count]);}];! 油! NSLog(@"User = %@nValue = %@",! [userDict[para.key] name],! [para.value count]);
  • 18. 弌舒于仆亠仆亳亠 舒亳亠从 舒仆亟舒仆 弍亳弍仍亳仂亠从 弌++: 亠舒亳 亳亠舒仂仂于 仍亞仂亳仄 仆亳于亠舒仍仆亠, 亰舒于亳 仂 从舒亠亞仂亳亶 亳亠舒仂仂于 弌#: 亠舒亳 亳仆亠亠亶仂于 仍亞仂亳仄 仆亳于亠舒仍仆亠, 亰舒于亳 仂 亳仆亠亠亶仂于, 于舒亳于舒ム 于 亠仗 Java: 亠舒亳 亳仆亠亠亶仂于 仍亞仂亳仄 仆亳于亠舒仍仆亠, 亰舒于亳 仂 亳仆亠亠亶仂于 (java.util.Collections) 仍亞亳仄 仆亳于亠舒仍仆亠, 于舒亳于舒ム 于 亠仗 (java.util.stream) Obj-C: 亠舒亳 仂于亠, 亠仍亳 仆亠 亳舒 Immutable-Mutable 仍亞仂亳仄 仗亠亳亳仆亠 从仂仄亠 仂亟仆仂亞仂 :) [NSEnumerator allObjects]
  • 19. NSEnumeratorLinq 仆仂于仆亠 仄亠仂亟: 舒弍仂舒 仄仆仂亢亠于舒仄亳: where, where_i, ofType concat, concatOne select, select_i union, intersect, except distinct zip skip, skipWhile join, groupJoin take, takeWhile groupBy, selectMany orderBy, orderByDescending 亅从仗仂: 从从仄仍亳: toArray, toSet toDictionary, toLookup 仂仗仂仍仆亳亠仍仆仂: aggregate, elect, elementAt all, any, none readBytes, readLines min, max keyValueEnumerator sum, average stringByJoin-withSeparator 鍖rstOrDefault, lastOrDefault enumerateCharacters
  • 20. 仂仍亠亰仆亠 仍从亳 Collections Programming Guide - https://developer.apple.com/ library/mac/documentation/cocoa/conceptual/Collections/ Collections.html NSSortDescriptor - http://nshipster.com/nssortdescriptor/ NSPredicate - http://nshipster.com/nspredicate/ NSExpression - http://nshipster.com/nsexpression/ NSOrderedSet - http://nshipster.com/nsorderedset/ Key-Value Collection Operators https://developer.apple.com/ library/mac/documentation/Cocoa/Conceptual/KeyValueCoding/ Articles/CollectionOperators.html https://github.com/robrix/RxCollections https://github.com/k06a/NSEnumeratorLinq
  • 21. One more thing 仗亠舒仂 if-null 仂亟 仆舒 C#: string priceStr = priceHolder.get(featureName); PriceLabel.Text = priceStr ?? "$0.99"; 仂亟 仆舒 Obj-C: NSDictionary *prices = [self.storeManager pricesDictionary]; NSString *p1 = prices[@"com.identifier1"] ?: @"$0.99";