vector<string>中,迭代器指向的某个字符是什么类型

问题描述

vector<string>中,迭代器指向的某个字符是什么类型
string a;
cin>>a;
int Count=0;
int x=0;int y=0;
int buf1[10],buf2[10];
char t;
vector<string> str(1,a);
for(vector<string>::iterator be=str.begin();be!=str.end();++be){
    if(*be>="0"&&*be<="9"){
        ++Count;
        x+=*be;       //此处编译器反馈类型错误。
        if(be+1!=str.end())
           continue;
    }
    buf1[y]=Count;buf2[y]=x;
    Count=0;x=0;++y;
}
求大牛们教育

解决方案

应该是一个被包装过的string类型。这个迭代器是一个接口,在向量模板中对一些运算符进行了重载,所以用指针运算符+迭代器的时候,就返回了当前迭代器所指向的string变量。
关于迭代器,可参看 http://www.daxueit.com/article/3101.html

解决方案二:

#include
#include
#include
using namespace std;
void Test()
{
string a;
cin>>a;
int Count=0;
int x=0;
int y=0;
int buf1[10],buf2[10];
char t;
vector str(1,a);
for(vector::iterator be=str.begin();be!=str.end();++be){
if(*be>="0"&&*be<="9"){
++Count;
x+=atoi(be->c_str()); //此处编译器反馈类型错误。
if(be+1!=str.end())
continue;
}
buf1[y]=Count;
buf2[y]=x;
Count=0;
x=0;
++y;
}
}
int main(int argc,char **argv)
{
Test();
return 0;
}

//*be就是指一个string元素,be就是该元素的指针,迭代器就是一种特殊指针
//x是int类型,所以运算符右边也应当是int类型

时间: 2024-11-16 00:06:11

vector&amp;lt;string&amp;gt;中,迭代器指向的某个字符是什么类型的相关文章

string类中,如何获得一个字符在字符串中最后出现的位置

问题描述 string类中,如何获得一个字符在字符串中最后出现的位置.如Stringpath="c:\java\jsp\A.java";position=?//获取path中最后出现\的位置?处的代码如何填.谢谢大家的帮忙. 解决方案 解决方案二:position=path.lastIndexOf("\");解决方案三:试试这个:publicclassTryString{publicstaticvoidmain(String[]args){Stringpath=&q

c++-关于多叉树中 迭代器使用的问题

问题描述 关于多叉树中 迭代器使用的问题 tree.h文件 #include <iostream> #include <list> #include <algorithm> using namespace std; struct TreeNode; class Tree; class Iterator; typedef list<TreeNode*> List; TreeNode* clone(TreeNode*,List&,TreeNode*);

C++中迭代器移动和运算符比较的问题

问题描述 C++中迭代器移动和运算符比较的问题 C++中,迭代器iter+1,表示的是向begin方向移动一个位置还是end方向移动? 何为向前移动?向后移动? C++Primer第五版中,迭代器的关系运算符中,如果某迭代器指向的容器位置在另一个迭代器所指位置之前,则说明前者小于后者. 请问怎么理解? 解决方案 取决于迭代器,缺省是前向迭代器,这样加一就是超end方向.

scanner-java中Scanner的使用问题,读取float类型输入值

问题描述 java中Scanner的使用问题,读取float类型输入值 最近在学习技术,在使用到java.util.Scanner时遇到了个问题: 问题描述:在使用float fNum = scanner.nextFloat()读取值时,如果输入的值超过8位,读取时会[异常]被截取,导致读取的值和输入的值不符,如果输入时,在值的后面加上"F"或"f",会导致float fNum = scanner.nextFloat()读取报错: 鄙人现在在学java技术,自己也想

PHP中可以自动分割查询字符的Parse

  这篇文章主要介绍了PHP中可以自动分割查询字符的Parse_str函数使用示例,小编也没见过的一个函数,这下分割URL中的查询字符串就方便了,需要的朋友可以参考下 直接上代码: 代码如下: $str = "1&errid=1&fee=2&balance=2582&fails=&msgid=634541149212681528&msg=全部发送成功."; parse_str($str, $output); echo $output['m

数据类型-350100198505020035 在c++中作为类的成员应该作为什么类型

问题描述 350100198505020035 在c++中作为类的成员应该作为什么类型 数据类型 350100198505020035 在c++中作为类的成员应该作为什么类型 解决方案 身份证,应该用字符串.因为这看上去是数字,但是其实和姓名一样,只是表示一个值,不需要数字计算. 解决方案二: 身份证号是可以分开的350100-19850502-0035这三个字段都是有意义的,如果是单独存储,不拿来用那就直接按楼上说的用字符串存储. 如果需要提取地区信息,出生年月信息以及验证身份证号,那我建议你

[华为上机练习题]7.删除字符串中出现次数最少的字符

题目 描述: 实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除.输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序. 题目类别: 字符串 难度: 中级 运行时间限制: 10Sec 内存限制: 128MByte 阶段: 入职前练习 输入: 字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节. 输出: 删除字符串中出现次数最少的字符后的字符串. 样例输入: abcdd 样例输出: dd 代码 /*------------------------

c#- C#中 截取 “\” 到 “.”之间的字符

问题描述 C#中 截取 "\" 到 "."之间的字符 string[] Info = Directory.GetFileSystemEntries(ResultUrl); string ResultTo1 = ""; List list =new List (); foreach (var item in Info) { string name = item.Substring(); list.Add(name); } 解决方案 用比较常见的方法

C++ Traits编程技法--从迭代器的设计看参数推导与类型推导

迭代器与相应类型推导 在写作泛型函数或代码时,我们可能存在这样的需要:与参数相关的其它类型,比如一个迭代器的值的类型,在算法中运用迭代器时,很可能会用到其也叫相应类型(associate type). 什么是相应类型? 迭代器所指之物的类型就是其中一个.如果我们的算法中有必要声明一个变量,以"迭代器所指对象的类别"为型号. 本文要向大家展示一个函数模板推导机制使用技法,这个在STL的迭代器和许多排序算法中广泛使用. 考虑一个情况,我们在写一个泛型函数,它接受一对迭代器,要做的事就是对这