C++ 访问C+中的向量+;

C++ 访问C+中的向量+;,c++,vector,C++,Vector,我编写了一个简单的程序,可以访问名为“input.txt”的文件,并将其内容推送到字符串类型的向量中 #include <iostream> #include <vector> #include <fstream> using namespace std; int main() { fstream input; input.open("input.txt"); string s; input >> s;

我编写了一个简单的程序,可以访问名为“input.txt”的文件,并将其内容推送到字符串类型的向量中

#include <iostream>
#include <vector>
#include <fstream>

using namespace std;

int main()
{
    fstream input;
    input.open("input.txt");
    string s;
    input >> s;
    while (!input.eof())
    {
        cout << s <<endl;
        input >> s;
        vector<string> v;
        v.push_back(s);
    }
    input.close();

}
#包括
#包括
#包括
使用名称空间std;
int main()
{
流输入;
input.open(“input.txt”);
字符串s;
输入>>s;
而(!input.eof())
{

cout是的,您可以迭代字符串向量的内容,将值转换为整数或浮点值并求和。

是的,您可以迭代字符串向量的内容,将值转换为整数或浮点值并求和。

对于初学者,这里有一个更简洁的版本对于您刚刚编写的代码:

ifstream input("input.txt");
string s;
while (input >> s) {
    cout << s << endl;
    vector<string> elems;
    elems.push_back(s);
}
最后,如果要循环使用
向量的元素
将它们添加到一起,则可能不希望将文件作为字符串读取,而是作为
int
s或
double
s读取。这样可以省去以后转换值的麻烦。例如:

ifstream input("input.txt");
vector<double> elems;

double s;
while (input >> s) {
    cout << s << endl;
    elems.push_back(s);
}

希望这有帮助!

对于初学者,这里是您刚刚编写的代码的更简洁版本:

ifstream input("input.txt");
string s;
while (input >> s) {
    cout << s << endl;
    vector<string> elems;
    elems.push_back(s);
}
最后,如果要循环使用
向量的元素
将它们添加到一起,则可能不希望将文件作为字符串读取,而是作为
int
s或
double
s读取。这样可以省去以后转换值的麻烦。例如:

ifstream input("input.txt");
vector<double> elems;

double s;
while (input >> s) {
    cout << s << endl;
    elems.push_back(s);
}

希望这有帮助!

您的程序不正确。您的意思可能是:

#include <iostream>
#include <vector>
#include <fstream>

using namespace std;

int main()
{
    ifstream input("input.txt");
    string s;
    vector<string> v;
    while (input >> s)
    {
        cout << s <<endl;
        v.push_back(s);
    }
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
ifstream输入(“input.txt”);
字符串s;
向量v;
while(输入>>s)
{

cout您的程序不正确。您可能的意思是:

#include <iostream>
#include <vector>
#include <fstream>

using namespace std;

int main()
{
    ifstream input("input.txt");
    string s;
    vector<string> v;
    while (input >> s)
    {
        cout << s <<endl;
        v.push_back(s);
    }
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
ifstream输入(“input.txt”);
字符串s;
向量v;
while(输入>>s)
{

cout您的代码不正确。特别是循环。请参见此以了解循环错误的原因:字符串的“和”是什么意思?您的代码不正确。尤其是循环。请参见此以了解循环错误的原因:“和”是什么意思字符串?感谢您帮助我完成并运行我的代码,我现在就要尝试这个。感谢您帮助我完成并运行我的代码,我现在就要尝试这个。
#include<algorithm>
#include<iterator>
#include<fstream>
#include<string>

struct ShowAndCopy {
    const std::string& operator()(const std::string& s) const {
        std::cout << s;
        return s;
    }
};

int main()
{
    std::ifstream input("input.txt");
    std::vector<std::string> v;
    std::transform(std::istream_iterator<std::string>(input),
                   std::istream_iterator<std::string>(),
                   std::back_inserter(v),
                   ShowAndCopy());
    return 0;
}