Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C+中的无穷大+;_C++_Loops_Vector_Std - Fatal编程技术网

C++ C+中的无穷大+;

C++ C+中的无穷大+;,c++,loops,vector,std,C++,Loops,Vector,Std,我想一次又一次地在std::vector上循环,直到我从循环中中断。这是最好的方式吗 int main() { std::string str; std::ifstream infile; std::vector<int> vec; std::set<int> sums; int sum = 0; sums.insert(sum); infile.open("Text.txt"); while (!infile.eof()) { getline(infile, s

我想一次又一次地在
std::vector
上循环,直到我从循环中中断。这是最好的方式吗

int main() {
std::string str;
std::ifstream infile;
std::vector<int> vec;
std::set<int> sums;
int sum = 0;
sums.insert(sum);
infile.open("Text.txt");
while (!infile.eof()) {
    getline(infile, str);
    vec.push_back(std::stoi(str));
}
infile.close();

while (true) {
    for (int i : vec) {
        sum += i;
        if (sums.count(sum)) {
            std::cout << sum;           
            return 0;
        }
        sums.insert(sum);
    }
}
intmain(){
std::字符串str;
std::ifstream-infle;
std::vec;
std::集合和;
整数和=0;
金额。插入(金额);
infle.open(“Text.txt”);
而(!infle.eof()){
getline(infle,str);
向量推回(std::stoi(str));
}
infle.close();
while(true){
用于(int i:vec){
总和+=i;
if(总和。计数(总和)){

std::cout您可以使用算法库并执行以下操作:

std::vector<int> vec;
// initialize vec here
while (std::none_of(vec.begin(), vec.end(), [](int i) {
    // return true here to break
    return false;
}));
std::向量向量向量机;
//在这里初始化vec
while(std::none_of(vec.begin()、vec.end()、[](int i){
//在这里返回true以中断
返回false;
}));

代码没有按照您描述的那样执行,因为您遗漏了重要部分(没有
中断
),因此很难说什么是“最好的”。请提供一个示例。您显示的代码确实会永远重复内部部分,该部分在向量上循环(假设有一些内容您没有显示)。现在您需要定义“最佳”考虑看一下标签,它提供了一个很好的选择来定义你的定义。我最喜欢的是“老师幸福”。你应该异步地做它,因为我相信这将在UI上运行。你在循环中对<代码> VEC>代码>做什么,如果是的话,什么?聪明。也许好,也许坏,但是聪明。