阶乘函数,vector编写,大家找问题,说原因·

forestassure forestassure 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
一段代码:问题在哪儿? 如何解决? 为什么 ?
void jiecheng(vector<int>& jc,int n)
{
if( n < 0 || n > 100 )
cout << "Error." << endl;

jc[0] = 1;



for( int i = 1 ; i <= n ; ++i ){
for( int j = 0 ; j < jc.size() -1 ; ++j )
jc[j] *= i;
//进位
for( j = 0 ; j < jc.size() -1 ; ++j ){
jc[j+1] += jc[j] / 10;
jc[j] %= 10;
}
}
}
问题在jc[0] ,
为什么呢
...全文

相关推荐

vector与map的erase()函数详细解析

vector循环删除的时候,erase(it)会返回下一个迭代器的地址,保险的做法是赋值给it 即 it= erase(it) 这是vector的内部机制所造成的,所以对vector进行erase的时候特别注意迭代器是否会失效! map则可以直接erase(it++); vector和map都不能将it++写在for循环中,而在循环体内erase(it)! 代码如下:void main(){    vector v;    v.push_back(1);    v.push_back(2);    v.push_back(4);    v.push_back(3);    v.pus

weixin_38562329

自己编写的类vector类

自己编写的类vector类,可以实现vector的大部分功能。 该类包含的功能有: 初始化: 默认初始化 拷贝初始化 列表初始化 使用数目和值进行初始化 赋值 操作: size 返回元素数目 capatity 返回容器暂时可容纳的最大元素数目 swap 交换两个元素的内容 empty 判断容器是否为空 [] 重载该运算符访问元素 begin,end 返回首尾迭代器 push_back 向容器尾加入元素 pop_back 从容器尾弹出元素 insert 向容器插入元素 erase 从容器删除元素 clear 清除容器所有元素 > >= < <= == !=

guohongqian

二维vector,clear()操作请慎重,当心遇到vector subscript out of range问题

二维vector 今天想要用vector实现二维数组的功能,尝试了把二维vector.谁知道刚上手就遇到了雷. 代码的形式大致如下: vector<int>>vv(3); vv.clear(); for (int i = 0; i < 3; i++) vv[i].push_back(0); 因为要重复使用该二维vector,所以进行了清空操作.然而却遇到了问题:vector subscript out of range 原因 后来在单步调试时发现了,clear()会让二维vector的size变成0,之前声明的3个一维数组的结构遭到破坏.(但可以看到它的capacity容量还是之前的值,这个后面会讲到). 执行到for的头部时,自动窗口如下: 如何解决 对上述代码做下改变: vector<int>>vv(3); vv.clear(); vv.resize(3); for (int i = 0; i < 3; i++) vv[i].push_back(0); 相当于把外层的vector的长度又恢复到了之前的值. 同样是执行到for的头部时,自动窗口如下:

CodingLife99

vector的earse造成迭代器失效的问题

vector的earse造成迭代器失效的问题

hjt_waves

(Vector Cast)UT 工程的总结问题

(Vector Cast)UT 工程的总结问题

.桃花依旧笑春风
评论 3
收藏 已收藏
分享
返回顶部