将一个向量附加到另一端并排序一个向量

时间:2012-05-01 10:52:25

标签: c++

我对矢量有一些疑问;

  • 如何以时间有效的方式在另一端附加一个向量?
  • 如果它的类型是NODE,如何使用STL功能对一个向量进行排序? (对于NODE,请看下面)

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

2 个答案:

答案 0 :(得分:2)

  • std::vector::insert()可用于从使用迭代器协议的任何内容中插入
  • std::sort()按升序排序,并采用可选的比较函数(或其上带有operator()的任何内容),它采用元素ab,如果{,则应返回true {1}}。

答案 1 :(得分: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());

节点应该定义&lt;操作者:

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