-1

我对 vector 有一些疑问;

  • 如何以省时的方式将一个向量附加到另一端?
  • 如果它的类型是 NODE ,如何使用 STL 特征对一个向量进行排序?(对于节点,请看下面)

    前任

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

2 回答 2

2
  • std::vector::insert()可用于从使用迭代器协议的任何内容中插入
  • std::sort()按升序排序并采用可选的比较函数(或任何带有operator()它的东西),它接受元素a并且b应该返回 true if a < b
于 2012-05-01T11:01:00.993 回答
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;
}
于 2012-05-01T11:07:12.897 回答