2012-05-01 44 views
-1

我有一些關於向量的問題;將一個向量附加到另一個末端並對一個向量進行排序

  • 如何以時間有效的方式在另一端追加一個向量?
  • 如何使用STL功能對一個向量進行排序,如果它的類型是NODE? (對於節點,看下文)

    struct NODE { 
    
          char name; 
    
          .... // other things 
    
    }; 
    
+1

嗯,這是兩個不相關的問題。請一次一個。 (對於兩者:你有什麼嘗試/查看,什麼沒有解決?) – Mat

+1

對於你的第一個問題,請參閱http://stackoverflow.com/questions/2551775/c-appending-a-vector-to-一個矢量和你的第二個問題見:http://forums.codeguru.com/showthread.php?t=366064 –

+0

你試過搜索['std vector append'](http://www.google.co。 uk/search?q = std + vector + append)或['std vector sort'](http://www.google.co.uk/search?q=std+vector+sort)? –

回答

2
  • std::vector::insert()可用於從任何其使用迭代器協議
  • std::sort()按升序排序插入並帶有一個可選的比較函數(或其他任何有operator()的文件),其中包含元素ab,並且如果a < b應該返回true。
2

要一個向量追加到另一個:

myVec.insert(myVec.end(), myVec2.begin(), myVec2.end()); 
// if your compiler supports C++11 you can do: 
myVec.insert(end(myVec), begin(myVec2), end(myVec2)); 

排序您的載體:

vector<Node> myVec; 
// add elements... 
sort(myVec.begin(), myVec.end()); 

節點應該定義<操作:

bool operator<(const Node & rhs, const Node & lhs){ 
    return rhs.name < lhs.name; 
} 
相關問題