{"id":1486,"date":"2018-12-25T20:26:26","date_gmt":"2018-12-25T12:26:26","guid":{"rendered":"http:\/\/www.yusian.com\/blog\/?p=1486"},"modified":"2018-12-25T20:26:26","modified_gmt":"2018-12-25T12:26:26","slug":"%e5%ae%9e%e7%8e%b0%e6%95%b0%e7%bb%84%e7%b1%bbarray%ef%bc%8c%e5%87%bd%e6%95%b0%e6%a8%a1%e6%9d%bf%e7%9a%84%e7%ae%80%e5%8d%95%e5%ba%94%e7%94%a8","status":"publish","type":"post","link":"https:\/\/www.yusian.com\/blog\/cpp\/2018\/12\/25\/2026261486.html","title":{"rendered":"\u5b9e\u73b0\u6570\u7ec4\u7c7bArray\uff0c\u51fd\u6570\u6a21\u677f\u7684\u7b80\u5355\u5e94\u7528"},"content":{"rendered":"<p>1\u3001Array.cpp<\/p>\n\n\n<pre lang=\"cpp\" line=\"1\">\n#pragma once\n#include <iostream>\nusing namespace std;\n\ntemplate <typename Item>\nclass Array {\n\tint m_size;\t\t\/\/ \u5b9e\u9645\u957f\u5ea6\n\tint m_capacity;\t\/\/ \u5bb9\u91cf\u5927\u5c0f\n\tItem *m_data;\t\/\/ \u6570\u636e\u7ed3\u6784\u6307\u9488\npublic:\n\tArray(int capacity = 0);\n\tbool insert(Item item);\n\tItem getItem(int index);\n\tItem operator[](int index);\n\tvoid display();\n\t~Array();\n\tfriend ostream &operator<<<>(ostream &, Array<Item> &);\n};\n\ntemplate <typename Item>\nArray<Item>::~Array() {\n\tdelete[] m_data;\n}\n\ntemplate <typename Item>\nArray<Item>::Array(int capacity) {\n\tif (capacity <= 0) return;\n\tm_capacity = capacity;\n\tm_data = new Item[capacity];\n}\n\ntemplate <typename Item>\nbool Array<Item>::insert(Item item) {\n\tif (m_size < m_capacity) {\n\t\tm_data[m_size] = item;\n\t\tm_size++;\n\t\treturn true;\n\t}\n\telse {\n\t\tcout << \"\u6570\u7ec4\u5df2\u6ee1...\" << endl;\n\t\treturn false;\n\t}\n}\n\ntemplate <typename Item>\nItem Array<Item>::getItem(int index) {\n\tif (index < 0 || index >= m_size) {\n\t\tcout << \"\u4f20\u5165\u7684\u7d22\u5f15\u4e0d\u5408\u6cd5\" << endl;\n\t\treturn NULL;\n\t}\n\telse {\n\t\treturn m_data[index];\n\t}\n}\n\ntemplate <typename Item>\nItem Array<Item>::operator[](int index) {\n\treturn getItem(index);\n}\n\ntemplate <typename Item>\nvoid Array<Item>::display() {\n\tcout << \"[\";\n\tfor (int i = 0; i < m_size; i++) {\n\t\tcout << m_data[i];\n\t\tif (i < m_size - 1) cout << \", \";\n\t}\n\tcout << \"]\";\n}\n\ntemplate <typename Item>\nostream &operator<<<>(ostream &cout, Array<Item> &arr) {\n\tarr.display();\n\treturn cout;\n}\n<\/pre>\n\n\n<p>2\u3001main.cpp<\/p>\n\n\n<pre lang=\"cpp\" line=\"1\">\n#include <iostream>\n#include \"Array.hpp\"\nusing namespace std;\n\n\n\nint main() {\n\tArray<int> arr(4);\n\tarr.insert(3);\n\tarr.insert(5);\n\tarr.insert(6);\n\tarr.insert(9);\n\tcout << arr << endl;\n\tsystem(\"pause\");\n\treturn 0;\n}\n<\/pre>\n\n\n<p>3\u3001\u6267\u884c\u7ed3\u679c\uff1a<\/p>\n<p>[3, 5, 6, 9]<br>\n\u8bf7\u6309\u4efb\u610f\u952e\u7ee7\u7eed. . .<\/p>","protected":false},"excerpt":{"rendered":"<p>1\u3001Array.cpp 2\u3001main.cpp 3\u3001\u6267\u884c\u7ed3\u679c\uff1a [3, 5, 6, 9] \u8bf7\u6309\u4efb\u610f\u952e\u7ee7\u7eed. . .<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[88],"tags":[],"class_list":["post-1486","post","type-post","status-publish","format-standard","hentry","category-cpp"],"_links":{"self":[{"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/posts\/1486","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/comments?post=1486"}],"version-history":[{"count":0,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/posts\/1486\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/media?parent=1486"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/categories?post=1486"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/tags?post=1486"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}