求教 Vector HashTable的有关问题

求教 Vector HashTable的问题?
我需要从2G(后期可能上T)大小的txt文本中提取大量的名词。将提取出来的名词放入一个容器中?请问用什么最好?
因为我需要放入的名词是不重复的。所以当我设法取得一个名词时,会查看容器中是否有这个元素,如果没有这插入。最后将这个容器中的所有元素写入结果文本txt中。
我用的Vector实现,将提取的名词用add()方法插入,在插入之前用contains()检验是否包含。因此我觉得插入和搜索查询的操作非常频繁。
请问用什么结构存储效率最高????或者有什么好的方法??

------解决方案--------------------
可以用set,不过不知道你的数据量有多大,容器最大容量也有限定的。
------解决方案--------------------
因为要提取所有的名词,插入操作的量还是很大的。
可以考虑对名词进行分类和排序,
比如按第一个字的拼音的首字母分类,a~z 把这些名词分别放在26个容器中。
输入一个名词比较一次就可以确定在哪个容器中。
这样查找的次数要少的多,容器中存储按顺序来,查找时采用二分法。 
容器的选择比较麻烦,用vector和队列的话,进行有序插入代价太大,用list 则没法实现二分查找。
采用set 或hashset 会比较快速。