Question: I just found that there's no LinkedList implementation in Objective-C, but I need one. So I am going to use `std::list`(or there's a better alternative?).

My question is: what should I care about memory management under ARC and non-ARC?

Answer: 
Have you tried coding it with an intermediate entity and many to one associations instead?

While it might not be what you want to have, it might provide insights on how to make it work with many to many.

(And frequently you end up realizing that the intermediate entity deserves to be there because of some attributes of the association.)
i've done it like this: 

<http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/association-mapping.html#many-to-many-bidirectional>

and this works like a charm