C 将对向量与自定义的模板库进行排序
c++ sorting a vector of pair with a self defined template library
已解决
谢谢,我使用了David Schwartz的答案并解决了问题。以下是我可以使用的代码。
我最初的问题是如何分类对的矢量,我从这里得到答案:
对std :: vector< std :: pair< std :: string,bool>>通过字符串?
然后,我想将此方法保留在我的库my_lib.hpp中,这样我就可以在需要时使用它,而且我想尝试为其制作模板。
以下是我的设置,我的问题是我在Eclipse中遇到此错误
void haha::pair_sort_second_dec<std::pair<int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >(std::vector<std::pair<int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >&)
main.cpp/问题行406 c/c 问题不确定的引用
my_lib.hpp
namespace haha{
template <class T>
bool pairCompare_dec(const T& , const T& );
template <class T>
void pair_sort_second_dec(std::vector<T>& );
template <class T>
bool pairCompare_dec(const T& firstElem,const T& secondElem) {
return firstElem.second > secondElem.second;
}
template <class T>
void pair_sort_second_dec(std::vector<T>& target){
std::sort(target.begin(),target.end(),pairCompare_dec<T>);
}
};
main.cpp
#include "my_lib.hpp"
int main(int argc,char* argv[]){
std::vector<std::pair<int,std::string> > test;
// initial test
haha::pair_sort_second_dec(test);
return 0;
}
有人知道如何解决吗?预先感谢。
std::sort(target.begin(),target.end(),pairCompare_dec);
应该是:
std::sort(target.begin(),target.end(),pairCompare_dec<T>);
相关文章:
- 计算排序向量的向量中唯一值的计数
- 查找两个排序向量中共有的元素
- 对的排序向量 (std::vector<pair<int, int>>) 按对的第一个元素搜索并更新第二个元素值
- 如何从C++的对的排序向量中获取有关给定值的相应对
- 对象接收堆栈溢出异常 c++ 的排序向量
- "x"的所有元素都存在于"y"(排序向量)中吗?
- 指向指针排序向量的指针向量的 C++ 向量
- 未排序向量上的lower_bound/upper_bound
- 智能指针的排序向量:神秘崩溃
- 按类型排序向量并按类型或派生类型搜索
- 如何在不使用标准算法的情况下在排序向量中添加 c 元素?
- C++排序向量<double>与在<Object>双成员变量上键控的向量
- 字符串指针的排序向量
- 具有前导数字的字符串的排序向量
- 保证重新排序向量
- 结构解释的C 排序向量
- 更新排序向量的一个条目
- 通过在排序向量上使用二叉搜索来定位未排序向量中的元素
- 排序向量上 std::find_if 和 std::bind2nd 的替代品
- 使用QuickSort算法以降序排序向量