c++中vector<string>可以存放什么数据

2025-01-24 16:21:49
推荐回答(4个)
回答1:

利用C++做信号处理方面的仿真,于是就涉及到了大量数据的存储。由于在读取数据的时候,并不知道数据的长度,这时候,vector就很好用了,因为vector容器不用知道数组的长度。

编写程序读入一组string类型的数据,并将它们存储在vector中,接着,把该vector对象复制给一个字符指针数组。为vector中的每个元素创建一个新的字符数组,并把该vector元素的数据复制到相应的字符数组中,最后把指向该数组的指针插入字符指针数组。

扩展资料

vector拷贝使用总结

1、利用拷贝赋值操作符(深复制)

vector array{3,5,2,6,4};

vector outArray;

outArray = array;

2、利用拷贝构造(深复制)

vector array{3,5,2,6,4};

vector outArray(array);

3、利用swap()函数(交换两个vector)

会清空原vector数组

vector array{3,5,2,6,4};

vector outArray;//设为空

outArray.swap(array);//清空array数组

回答2:

vector是c++标准库的一个容器,如果学过数据结构就知道有数组,线性表,链表之类各种东西,vector实际上就是数组。

string是c++标准库的字符串类型。

实例:
vector what_string;
vector hell_string;
vector louzhu_string;
vector shafa_string;

回答3:

你这这种定义 可以存放 string类型的 字符串 . vector这样声明可以存整型。 还可以定义为自定义类型

回答4:

#include
#include
#include
#include
#include
using namespace std;
class Student
{
public:
Student(){}
void write();
void red();
void show();
void sortScore();
int operator<(const Student&);
int a_bScore();
void deleteStudent();
private:
int id;
string name;
double score;
};
vector student;
void Student::write()
{
Student s;
char fileName[20];
cout<<"请输入文件名:"< cin>>fileName;
ofstream out(fileName,ios::app);
cout<<"请输入学生学号姓名成绩:"< vector::iterator iter;
while (cin>>s.id>>s.name>>s.score)
{
iter=student.begin();
while (iter!=student.end())
{
if (s.id==iter->id)
{
cout< cout<id<<" "<name<<" "<score< break;
}
else
iter++;
}
if (iter==student.end())
{
out< student.push_back(s);
}
}
cin.clear();
}
void Student::show()
{
vector::const_iterator iter=student.begin();
cout<<"学号\t姓名\t 成绩\t"< while (iter!=student.end())
{
cout<id<<"\t"<name<<" \t"<score< iter++;
}
}
void Student::red()
{
Student s;
char fileName[20];
cout<<"请输入文件名:"< cin>>fileName;
ifstream in(fileName);
vector::iterator iter;
while (in>>s.id>>s.name>>s.score)
{
iter=student.begin();
while (iter!=student.end())
{
if (s.id==iter->id)
{
break;
}
else
iter++;
}
if (iter==student.end())
{
student.push_back(s);
}
}
cin.clear();
}
int Student::operator<(const Student&s)
{
return score>s.score?1:0;
}
void Student::sortScore()
{
sort(student.begin(),student.end());
}
int Student::a_bScore()
{
int a,b,low,up,cnt=0;
cout<<"请输入要查找的分数段:"< cin>>a>>b;
if (a>b)
{
up=a;
low=b;
}
else
{
low=a;
up=b;
}
vector::const_iterator iter=student.begin();
while (iter!=student.end())
{
if (iter->score>=low&&iter->score<=up)
{
cout<id<<" "<name<<" "<score< cnt++;
}
iter++;
}
return cnt;
}
void Student::deleteStudent()
{
Student s;
cout<<"请输入要删除的学生学号:"< cin>>s.id;
vector::iterator iter=student.begin();
while (iter!=student.end())
{
if (iter->id==s.id)
{
break;
}
else
iter++;
if (iter!=student.end())
{
student.erase(iter);
cout<<"OK,"< }
else
{
cout<<"没找到学号为:"< }
}
}
int main()
{
Student s;
int choice;
cout<<"=-=-=-=-=-=-=-=-=-=-=-=-=-=-欢迎使用学生信息管理系统-=-=-=-=-=-=-=-=-=-=-=-=-=-="<begin:
cout<<"1->添加学生信息 2->显示学生信息 3->删除学生信息 "< cout<<" 0-> 退出 "< cout<<"4->从文件添加 5->按成绩排序 6->分数段信息查询"<
cin>>choice;
if (choice==1)
{
s.write();
system("cls");
goto begin;
}
else if (choice==2)
{
s.show();
system("pause");
system("cls");
goto begin;
}
else if (choice==3)
{
s.deleteStudent();
system("pause");
system("cls");
goto begin;
}
else if (choice==4)
{
s.red();
system("pause");
system("cls");
goto begin;
}
else if (choice==5)
{
s.sortScore();
system("pause");
system("cls");
goto begin;
}
else if (choice==6)
{
s.a_bScore();
system("pause");
system("cls");
goto begin;
}
else if (choice==0)
{
exit(0);
}
else
{
cout<<"输入非法!!!"< system("pause");
goto begin;
}
return 0;
}