移除重复的字符串数组
Removing duplicates string array c++
我想从包含一列字符串的文件中读取,即
AAAA
BBBB
22
4556
.
.
.
并在同一个文件中只重写唯一的元素。
sprintf(nameID,"Try.dat");
IDFile = fopen (nameID,"r+");
std::vector<std::string> test;
fputs (test,IDFile)
std::sort(test);
auto it = std::unique(std::begin(test), std::end(test));
test.erase(it, test.end());
for(int k = 0; k<test.size();k++){
fprintf (IDFile,"%s n",test[k].c_str());
}
fclose (IDFile);
但我得到以下错误
error: cannot convert ‘std::vector<std::basic_string<char> >’ to ‘const char*’ for argument ‘1’ to ‘int fputs(const char*, FILE*)’
error: no matching function for call to ‘sort(std::vector<std::basic_string<char> >&)’
warning: ‘auto’ changes meaning in C++11; please remove it [-Wc++0x-compat]
error: ‘it’ does not name a type
有什么更好的方法吗?
谢谢
标准库是你的朋友:
#include <set>
#include <iostream>
int main()
{
std::set<std::string> set;
for (std::string line; getline(std::cin, line);)
set.insert(line);
for (auto const& s : set)
std::cout << s << 'n';
}
相关文章:
- 将C#字符串数组传递给C++
- 如何为 C 型字符串数组编写 getter 和 setter?
- 有没有办法使用 strcpy 将字符串数组复制到另一个字符串或其他数组中?
- 尝试将 c 字符串数组与分隔符连接起来
- 将字符串数组传递给接受常量字符**的函数
- 返回 C++ 中的字符串数组
- 如何从COM模块中的函数返回字符串数组?
- 无法将字符串数组声明为类成员而不是字符 (C++)
- 删除字符串数组
- 如何将字符串数组返回到 java JNI
- 将字符串数组作为函数参数传递
- C++将字符串数组的元素存储到变量中
- 循环访问还包含未使用元素的字符串数组
- 字符串数组上的 sizeof 运算符以 C++ 为单位给出不同的输出
- 乘以字符串/数组和全局数组
- 递归二进制搜索与字符串数组
- 如何初始化一个标准::字符串数组?
- 无法在声明时使用初始值设定项列表初始化常量字符*/字符串数组的向量
- C++字符串数组的动态向量
- 给定一个等长字符串数组