Comments (9)
乌龙,为 mod12 bug 造成。已修复。
from chaosclock.
在選擇行動時,需要對pieces的hand和running合併,這是當前棋手的可選行動。我不知道改成數組之後,能否正準獲取它們的長度,如果可以,就沒問題。
from chaosclock.
如果不取长度可以吗?12+12一共24个字节,前面12是棋盘,后面12个是手中的棋子,依次遍历到底,手中没这个棋的,对应位置就是0。这样不用管手中有几个棋子。因为循环依次遍历,在数组长度不大的情况下,说不定比vector操作还节省计算量,并且也方便利用CPU Cache做prefetch。vector的话,计算期间分支跳转多,几乎做不了prefetch。
from chaosclock.
vector为啥操作开销大呢,是因为涉及内存分配,销毁,空间不够的情况下的再分配,还有数据的搬移等等,开销也不小,说不定还不如数组遍历快。
from chaosclock.
Piece 内部有多个成员数组,和Piece内部成员不是数组,而是由多个Piece组成数组,哪种结构更好?
from chaosclock.
Piece 内部有多个成员数组,和Piece内部成员不是数组,而是由多个Piece组成数组,哪种结构更好?
我不太明白,你能寫個示例出來嗎?
我感覺c++還提供了不少數據類型,這裏確實不宜用vector。因為「hand、stick、free、dead、stop、stock」這些都確定只有兩個int[6],而vector是變長的。
但我不知道還有哪種數據類型可以用,我只知道vector能用…
from chaosclock.
hand、stick、free、dead、stop、stock都應該做成二維int數組,一維長度是6,二維長度是2個。
run是一維數組,長度是12。
from chaosclock.
沒有值則是0。有值則是1~12。
from chaosclock.
可以先优化成数组,OK后进一步优化为bit位运算。
from chaosclock.
Related Issues (20)
- make all 報錯? HOT 1
- 第67、68行是怎麼回事? HOT 1
- 準備用位運算/二進制重寫一個 HOT 34
- 将数据预取到高速缓存中以提高程序性能 HOT 5
- 可否解釋下353行的堆棧? HOT 5
- 第250行的alloc.allocate(1)是否起作用? HOT 1
- 代碼報錯,未找到原因 HOT 9
- ChatGPT 给出的解决思路 HOT 10
- 能算到初始局面了,接下來的任務 HOT 2
- 問下以下代碼為何出錯? HOT 2
- 缩减内存占用 HOT 5
- 已經能算出第7頁的唯一共贏走法! HOT 43
- 第五頁測出bug,已想好對策 HOT 3
- 实现哈希表之后的性能进一步优化 HOT 11
- 優化之後速度確實快,但出現問題 HOT 12
- 用 JavaScript 写 UI 交互如何 HOT 2
- 我在我的電腦上跑最新的代碼,感覺不是很快?
- 我在我的電腦上跑最新的代碼,感覺不是很快? HOT 24
- 【重大改進】改變了哈希map格式,使棋能走下去 HOT 11
- git pull / push 失败? HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chaosclock.