개발하다보면, 수많은 자료형을 접하고 만들게 된다.
상용 프로그램을 만들 때
단, 하나의 솔루션으로 풀 수 있는 것은 없다.
그렇다고 매우 어려운 것은 아니다.
보통 하나의 프로토콜은
복합적인 자료형의 집합인 하나의 클래스로 해결된다.
사람이 많아지고 히스토리 관리가 안되면 해당 클래스는 비대하고 비효율적이지만
하드웨어가 워낙 빨라 큰 문제가 되지 않는다.
그러나 사용자 수가 늘어나고 보이지 않는 비용이 늘어날 수록 비효율적이 되므로
늘 리팩토링을 하고 최적화를 항상 고민해야 한다.
그리고 아토믹한 자료형을 항상 살펴봐야 한다.
해당 솔루션에 인덱스가 필요한지, 동기화를 계속 해야할지, 정렬이 중요한지, 등
동기화 때문에 만들어진 솔루션을 사용할 일은 많이 없다.
그래서 어떻게 만들어져 있는지 구현 방법을 알아야 하고 그 모든 것의 기본은
malloc을 이해하는 것과 linked list를 구현 하는데서 출발한다.
자바에서 파라미터 넘길 때 스택도 좋다.
오버로딩도 되지만... 파라미터 바꾸면, 연계된 너무 많은 것들이 바뀌어서 ^^;;
Stack<double> s = new Stack<double>();
s.Push(10.5);
s.Push(3.54);
s.Push(4.22);
double val = s.Pop();
C++, C# 등... 여러가지 하니 헷갈린다.
Queue
Queue<int> q = new Queue<int>();
q.Enqueue(120);
q.Enqueue(130);
q.Enqueue(150);
int next = q.Dequeue();
next = q.Dequeue();
Array
int sum = 0;
int[] numbs = new int[10];
Random rand = new Random();
for( int i=0; i < nums.Length; i++)
{
nums[i] = rand.Next() % 100;
}
for (int i=0; i<nums.Length; i++)
{
sum += nums[i];
}
Console.WriteLine(sum);
LinkedList
LinkedList<string> list = new LinkedList<string>();
list.AddLast(“Apple”);
list.AddLast(“Banana”);
list.AddLast(“Lemon”);
LinkedListNode<string> node = list.Find(“Banana”);
LinkedListNode<string> newNode = new LinkedListNode<string>(“Grape”);
list.AddAfter(node, newNode);
list.ToList().forEach(p=> Console.WriteLine(p));
foreach(var m in list)
{
Console.WriteLine(m);
}
Dynamic Array
ArrayList
ArrayList myList = new ArrayList();
myList.Add(90);
myList.Add(88);
myList.Add(75);
int val = (int) myList[1];
List<T> Class
List<int> myList = new List<int>();
myList.Add(90);
myList.Add(88);
myList.Add(75);
int val = myList[1];
SortedList<TKey, TValue> Class
SortedList<int, string> list = new SortedList<int, string>();
list.Add(1001, “Tim”);
list.Add(1020, “Ted”);
list.Add(1010, “Kim”);
string name = list[1001];
foreach(KeyValuePair<int, string> kv in list)
{
Console.WriteLine(“{0}:{1}”, kv.Key, kv.Value);
}
이제 진짜 iOS만 해야지.
'C++' 카테고리의 다른 글
스위프트 소스 중에 가장 중요한 소스 from swift.org (0) | 2019.02.02 |
---|---|
gcc -static -> Visual studio (0) | 2019.02.02 |
mac bluetooth service on and off (0) | 2019.02.02 |
working on graph (0) | 2019.02.02 |
JAVA C/C++ Objective-C Swift (0) | 2019.02.02 |
최근댓글