Сергей Полынцев: В интернетах примеров более чем достаточно. Даже на хабре было: habrahabr.ru/post/179131 А чтобы демонстрировать код, нужно знать как минимум о каком языке программирования идёт речь.
Sumor: Все динамические массивы всегда нумеруются с 0 и чтобы небыло путаницы с использованием статических/динамических массивов, статические массивы также принято нумеровать с 0, а не из-за какого-то там влияния. Если в книгах написано, что массивы нужно нумеровать с 1, то это плохие книги, которые учат дурному тону и вносят путаницу в и без того не окрепшие мозги новичков.
Строки нумеруются с 1 из-за особенностей их реализации - по индексу 0 в строках лежит их длина.
@DmitryPhilimonov согласитесь, если вы сделаете рефакторинг, да ещё и комментарии с примером накатаете, это уже будет другой код и вполне возможно, что это уже будет не жесть. Но сейчас-то вы нам написали одну чудо-строчку...
@SHAKIRA Учитесь пользоваться дебагером. Код не может просто зависнуть. Под отладкой всегда есть возможность посмотреть что именно происходит в вашей программе.
А что, были прецеденты? Если не доверяете встроенному ObjectID, то можете воспользоваться UUID https://ru.wikipedia.org/wiki/UUID - лучшие умы человечества гарантируют вам его уникальность :)