#include <iostream>
#include <string>
#include <vector>
#include <sstream>
using namespace std;
int main() {
vector<double> vector_double;
vector<string> vector_string;
...
while (cin >> sample_string)
{
...
}
for(int i = 0; i <= vector_string.size(); i++)
{
....
}
for (int i = 0; i < vector_double.size(); i++)
....
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Mat*_* M. 15
为什么会有警告
-Wsign-compare?
作为警告的名称及其文本暗示,问题在于您正在比较有符号和无符号整数.通常认为这是一次事故.
为了避免这种警告,您只需要确保<(或任何其他比较运算符)的两个操作数都是有符号的或两者都是无符号的.
我怎么能做得更好?
写的惯用方式for环路初始化两个计数器,并在第一条语句的限制:
for (std::size_t i = 0, max = vec.size(); i != max; ++i)
Run Code Online (Sandbox Code Playgroud)
这样可以节省size()每次迭代时的重新计算.
您也可以(也可能应该)使用迭代器而不是索引:
for (auto it = vec.begin(), end = vec.end(); it != end; ++it)
Run Code Online (Sandbox Code Playgroud)
auto这是一个简写std::vector<int>::iterator.迭代器适用于任何类型的容器,而索引限制你使用C-arrays,deque和vector.
| 归档时间: |
|
| 查看次数: |
13705 次 |
| 最近记录: |